下面是一个简单的之前语句级触发器示例,该触发器在对emp表执行插入操作之前显示一条消息。
CREATE OR REPLACE TRIGGER emp_alert_trig
BEFORE INSERT ON emp
BEGIN
DBMS_OUTPUT.PUT_LINE('New employees are about to be added');
END;
以下INSERT是这样构造的,以便在执行一次命令时插入多个新行。对于员工ID介于7900和7999之间的每一行,都会插入一个新行,其中员工ID按1000递增。下面是执行该命令的结果,这时插入了三个新行。
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;
EMPNO ENAME DEPTNO
---------- ---------- ----------
8900 JAMES 40
8902 FORD 40
8934 MILLER 40
消息New employees are about to be added将在触发器触发后显示一次,即使结果是添加了三个新行。