1.前言
最近在做项目的优化,其中用到了伪哈希,伪哈希维护字段又需要用到 触发器,于是就学习了一下。
2.语法
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。
触发程序与命名为tbl_name的表相关。tbl_name必须引用永久性表。不能将触发程序与临时表表或视图关联起来。
trigger_time是触发程序的动作时间。它可以是BEFORE或AFTER,以指明触发程序是在激活它的语句之前或之后触发。
trigger_event指明了激活触发程序的语句的类型。trigger_event可以是下述值之一:
INSERT:将新行插入表时激活触发程序,例如,通过INSERT语句。
UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。
DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE语句。
trigger_stmt是当触发程序激活时执行的语句。
如果你打算执行多个语句,可使用BEGIN ... END复合语句结构。这样,就能使用存储子程序中允许的相同语句。
DELIMITER |
CREATE TRIGGER testref BEFORE INSERT ON test1 FOR EACH ROW
BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4+1 WHERE a4 = NEW.a1;
END
|
3.查看触发器
SHOW TRIGGERS
4.删除触发器
DROP TRIGGER [schema_name.] trigger_name
例
DROP TRIGGER `school`.`ins_sum`