# lec10 This lecture has a corresponding lab excercise who's instructions can be found in `triggers-lab.pdf`. ## What is a trigger Something that executes when _some operation_ is performed ## Structure ``` create trigger NAME before some_operation when(condition) begin do_something end; ``` To explain: First we `create trigger` followed by some trigger name. Then we have to denote that this trigger should fire whenever some operation happens. This trigger then executes everything in the `begin...end;` section _before_ the new operation happens. > `after` Likewise if we want to fire a trigger _after_ some operation we ccan just replace the before keyword with `after`. > `new.adsf` Refers to _new_ value being added to a table. > `old.adsf` Refers to _old_ vvalue being changed in a table. ## Trigger Metadata If you want to look at what triggers exist you can query the `sql_master` table. ``` select * from sql_master where name='trigger'; ```