在数据库里面有一个被称为“定时炸弹”的东西叫做触发器,它是由一个事件来触发另一个事件,事件包括insert,delete,update语句,当数据系统执行这些事件时,就会激发触发器去执行相应的操作。
在实现触发器管理之前,我先在数据库里面创建两张表,一个是timelog,一张是studentinfo,两张表里面没有任何的数据。
首先先创建一个触发器,sql语句如下:create trigger 触发器名称 before/after 触发事件 on 表名 for each row 执行语句,例如:create trigger auto_save_time before insert
on studentinfo for each row insert into timelog(savetime) values(now()),(其实删除,修改操作都是一样的)截图如下:
此时你再执行一句插入语句:insert into studentinfo(name) values("wujinfan"),截图如下:
这时你再查看之前触发的那张表,就会发现timelog表会多一条数据,截图如下:
需要注意的是同一事件不能添加两个触发器,否则会报错,因为我在这里添加的触发器和上面添加的一样,所以报错了,截图如下:
其次再来说一下before/after的区别:
before:先完成触发,再进行增删改,触发的语句先于监视的增删改。
after:先完成数据的增删改,在进行触发,触发的语句后于监视的增删改
查看触发器,show triggers,截图如下:
删除触发器,drop trigger 触发器名,截图如下: