MySQL trigger的简单例子



语法

创建触发器——触发器必须有名字,最多有64个字符,后面可能有分隔符。它类似于在MySQL中命名其他对象的方式。



{在} - |触发器的执行时间设置:可以设置为之前或之后的事件。



{插入更新删除} - | |还可以设置触发事件:他们可以在实施过程中引发的插入,更新或删除。



触发器是一个表:当我们在这个表中插入、更新或删除操作时,我们触发触发器的激活。我们不能在同一个表中为同一事件安排两个触发器。



每个行触发器的执行间隔:每个行子句通知触发器每隔一行执行一次操作,而不是执行整个表一次。



触发器包含要触发的SQL语句:这里的语句可以是任何合法语句,包括复合语句,但这里的语句受与函数相同函数的限制。

-您必须有相当的权限来创建触发器(创建触发器),如果您已经是root用户,那么就足够了,这与SQL标准不同。

例子



那:

创建一个表,表


如果表下降存在表;
创建表的表(
tab1_id varchar(11)
);



创建一个表,表2


如果表下降存在TAB2;
创建表(表2
tab2_id varchar(11)
);



创建一个触发器:t_afterinsert_on_tab1

效果:添加TAB1表自动记录并将该记录添加到TAB2表


如果存在t_afterinsert_on_tab1触发降;
创建触发器t_afterinsert_on_tab1
插入在表后
每一行
开始
插入TAB2(tab2_id)值(新。tab1_id);
结束;



测试


插入表(tab1_id)值('0001);


看结果


SELECT * FROM表;
SELECT * FROM TAB2;


例2:

创建一个触发器:t_afterdelete_on_tab1

效果:删除表表记录自动删除在TAB2表的相应记录


如果存在t_afterdelete_on_tab1触发降;
创建触发器t_afterdelete_on_tab1
删除表后
每一行
开始
删除从哪里tab2_id = old.tab1_id TAB2;
结束;



测试


删除表,tab1_id = '0001;


看结果


SELECT * FROM表;
SELECT * FROM TAB2;


谢谢你的阅读。我希望你能帮助你,谢谢你对这个站的支持。