一个before insert trigger
无论是for each row 还是statement的都是insert 一row 就触发一次CREATE OR REPLACE TRIGGER TEST.TRG_TABLE_INSERT
--after
BEFORE INSERT ON TEST.TRG
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
TMPVAR NUMBER;
BEGIN
TMPVAR := 0;
--:NEW.
insert into trg_log values('TRG_TABLE_INSERT',sysdate);
EXCEPTION
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END;
/
有没有FOR EACH ROWinsert into trg values(1,'1111');
insert into trg values(2,'2222');
insert into trg values(3,'3333');
insert into trg values(4,'4444');后
都会发现
在log 有4条
无论是for each row 还是statement的都是insert 一row 就触发一次CREATE OR REPLACE TRIGGER TEST.TRG_TABLE_INSERT
--after
BEFORE INSERT ON TEST.TRG
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
TMPVAR NUMBER;
BEGIN
TMPVAR := 0;
--:NEW.
insert into trg_log values('TRG_TABLE_INSERT',sysdate);
EXCEPTION
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END;
/
有没有FOR EACH ROWinsert into trg values(1,'1111');
insert into trg values(2,'2222');
insert into trg values(3,'3333');
insert into trg values(4,'4444');后
都会发现
在log 有4条
--此before insert触发器是在你insert数据的时候前一些时间,
--将你要添加到表中时间字段的系统时间添加进来,
CREATE OR REPLACE TRIGGER TEST.TRG_TABLE_INSERT
BEFORE INSERT ON TEST.TRG
FOR EACH ROW
BEGIN
select sysdate into :new.dt from dual;--dt是你添加数据的表的一个时间字段
END TRG_TABLE_INSERT;
/
触发器都是没一行都触发