Triggers execute automatically whenever an INSERT, UPDATE, or DELETE operation is performed on the table named in the trigger. A row-level trigger fires once for each row affected, while a statement-level trigger fires once for the entire statement.
When an INSERT, UPDATE, or DELETE fires a trigger, the order of operation is as follows, depending on the trigger type (BEFORE or AFTER):
BEFORE triggers fire.
The operation itself is performed.
Referential actions are performed.
AFTER triggers fire.
When creating a trigger using the CREATE TRIGGER statement, if a trigger-type is not specified, the default is AFTER.
If any of the steps encounter an error not handled within a procedure or trigger, the preceding steps are undone, the subsequent steps are not performed, and the operation that fired the trigger fails.