Before statement-level trigger v15
This example shows a simple before statement-level trigger that displays a message before an insert operation on the emp
table:
CREATE OR REPLACE TRIGGER emp_alert_trig BEFORE INSERT ON emp BEGIN DBMS_OUTPUT.PUT_LINE('New employees are about to be added'); END;
The following INSERT
is constructed so that several new rows are inserted upon a single execution of the command. For each row that has an employee id between 7900 and 7999, a new row is inserted with an employee id incremented by 1000. The following are the results of executing the command when three new rows are inserted:
INSERT INTO emp (empno, ename, deptno) SELECT empno + 1000, ename, 40 FROM emp WHERE empno BETWEEN 7900 AND 7999; New employees are about to be added SELECT empno, ename, deptno FROM emp WHERE empno BETWEEN 8900 AND 8999;
Output
EMPNO ENAME DEPTNO ---------- ---------- ---------- 8900 JAMES 40 8902 FORD 40 8934 MILLER 40
The message New employees are about to be added
is displayed once by the firing of the trigger even though the result adds three rows.