语法:
CREATE OR REPLACE TRIGGER '触发器名称'
AFTER/BEFORE INSERT OR UPDATE OR DELETE -- 1
ON '表名' -- 2
REFERENCING OLD ROW AS OLD NEW ROW AS NEW -- 3
FOR EACH ROW -- 4
BEGIN -- 5
--插入语句
IF INSERTING THEN
INSERT INTO
tablename (field1, field2, field3)
VALUES
(:NEW.field1, :NEW.field2, :NEW.field3);
--更新语句
ELSEIF UPDATING THEN
UPDATE
tablename
SET
field1 = :NEW.field1, field2 = :NEW.field2
WHERE
field3 = :OLD.field3;
END IF;
--删除语句
IF DELETING THEN
DELETE FROM
tablename
WHERE
field1 = :OLD.field1;
END IF;
END;
1)、
AFTER / BEFORE:在语句执行之前还是执行之后
BEFORE:INSERT / UPDATE可以修改NEW数据
AFTER:不可以修改NEW数据
BEFORE和AFTER都不可以修改OLD数据
2)、 目的表名
3)、 为OLD ROW和NEW ROW设置别名
4)、 行级触发器,每有一行数据发生变化,就执行一次触发器
5)、NEW:只有INSERT、UPDATE语句才有
表示新添加、更新后的新数据
OLD:只有UPDATE、DELETE语句中才有
表示更新前、删除前前的旧数据
在BEGIN ... END;语句块中,使用NEW、OLD需要在前面加上冒号(:NEW、:OLD)
最后
以上就是朴素白云最近收集整理的关于SQL触发器的全部内容,更多相关SQL触发器内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复