Summary
A trigger is a binding of a set of actions to certain operations performed on a table or view. This set of actions is defined in a special trigger function distinguished by specifying the type of returned value to be of special pseudotype trigger. So each time an operation (INSERT, UPDATE, DELETE, or TRUNCATE) is performed on the table, this trigger function is called by the system.
It can be executed either FOR EACH ROW or FOR EACH STATEMENT. If executed for each row (row level trigger), the function is passed special variables OLD and NEW. This will contain the row content, as it is currently in the database (OLD), and as it is at the moment the trigger function is called (NEW). Where the OLD or NEW value is missing, it is passed as undefined. If executed once per statement (the statement-level trigger), both OLD and NEW are unassigned for all operations.
The trigger function for row-level triggers on INSERT, UPDATE, and DELETE can be set to execute either BEFORE or AFTER the operation...