创建
类似于回调。当指定的表中发生了特定的操作,便会执行触发器中相应的操作
—— 类似于观察者模式。
-
触发器只有发生特定操作时才执行。它可以与特定表的 INSERT , UPDATE , DELETE 绑定。
-
通过 CREATE TRIGGER 定义一个触发器。 sqlite 的触发器。
CREATE TABLE triggerTable(
new_id VARCHAR(20),
old_id VARCHAR(20)
);
CREATE TRIGGER trigger1 AFTER UPDATE ON Orders2
BEGIN
INSERT INTO triggerTable(new_id,old_id) VALUES(new.[order_num],old.order_num); -- 当指定的操作发生时,便会将数据存储到相应的表中
END;
UPDATE Orders2 SET order_num='xx222x';
DROP TRIGGER trigger1; -- 删除指定的触发器
-
通过 CREATE TRIGGER 指定创建的触发器的名字,通过 ON 为触发器绑定表名 —— 只要当这个表发生指定操作时才会启动触发器,别的表发生指定操作则不会。
-
BEGIN 与 END 之间则是触发器的代码。
-
AFTER 表示当操作发生后才执行,也可用 BEFORE 表示在操作执行之前执行触发器。其后只能跟 UPDATE , DELETE 与 INSERT。
-
触发器代码中通过 new+列名获取修改后的值,old+ 列名获取修改前的值。
删除
最后一行用 DROP TRIGGER 删除已建立的触发器。
网友评论