Oracle 触发器写法Programming

create or replace trigger t_after_user_copy --create or replace trigger 触发器名称
after insert or update or delete   ---时间 after/before 事件 insert or update or delete
on t_user   ---作用的表 on tablename
FOR EACH ROW --  指定是否对受影响的每行都执行触发器,即行级触发器,如果不使用此子句,则为语句级触发器

BEGIN
    IF INSERTING THEN
        insert into t_user_copyID,NAME) values:NEW.ID,:NEW.NAME);
    ELSIF UPDATING THEN
        UPDATE t_user_copy SET NAME = :NEW.NAME WHERE ID = :OLD.ID;
    ELSIF DELETING THEN
        DELETE FROM t_user_copy WHERE ID = :OLD.ID;
    END IF;
END;

相关参数注解:
before和after:指在事件发生之前或之后激活触发器。
insert、delete和update:指定构成触发器事件的数据操纵类型,update还可以制定列的列表。
referencing:指定新行(即将更新)和旧行(更新前)的其他名称,默认为NEW和OLD。
for each row:指定是否对受影响的每行都执行触发器,即行级触发器,如果不使用此子句,则为语句级触发器

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注