概述
语法:
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触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复