mysql触发器

来源:互联网 发布:linux mkdir函数 编辑:程序博客网 时间:2024/05/21 19:27

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 BEGININSERT 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`



0 0
原创粉丝点击