可以看到,在tb_student表执行insert操作后,另外两个表也分别更新了记录,tb_before_trigger表num值为0,证明在tb_student执行insert操作前插入的;tb_after_trigger表num值为1,证明在tb_student执行insert操作后插入的——这就是before与after的区别。
对于其他条件触发器,使用方法与示例1和示例2类似,本文不在演示。
4 查看触发器(1)show triggers语句
通过show triggers语句可以查看示例1和示例2中创建的触发器:
show triggers;
输出结果:
(2)在triggers表中查看触发器
在information_schema数据库的triggers表中存放在MySQL数据库中的所有触发器,可以通过查询语句进行查看:
select * from information_schema.triggers where trigger_name = 'before_trigger' ;
输出结果:
当不指定查询条件时,即是指查看所有触发器信息。
5 删除触发器使用DROP TRIGGER语句可以删除触发器,基本语法结构如下:
DROP TRIGGER [schema_name] trigger_name
其中,schema_name表示数据库名称,是可选参数,如果省略则表示从当前数据库中删除触发器。
示例3:删除示例1中创建的触发器before_trigger
drop trigger before_trigger;
6 总结在某些时候,触发器可以起到锦上添花的作用,但是,触发器的效率并不高,所以还是尽量少用。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx