> Oracle uses the following execution model to maintain the proper firing sequence of multiple triggers and constraint checking:
Run all BEFORE statement triggers that apply to the statement.
Loop for each row affected by the SQL statement.
Run all BEFORE row triggers that apply to the statement.
Lock and change row, and perform integrity constraint checking. (The lock is not released until the transaction is committed.)
Run all AFTER row triggers that apply to the statement.
Complete deferred integrity constraint checking.