触发器是特殊的存储过程,不同的是,执行存储过程需要使用call语句来调用,而触发器的执行不需要使用call语句来调用,只需要一个预定义的事件发生的时候,就会被mysql自动调用。
1、创建触发器
语法:create trigger trigger_name trigger_time trigger_event on table_namefor each row trigger_stmt
2、查看触发器
2.1用show triggers来查看
语法: show triggers [like pattern]
2.2在triggers表中查看
语法:select * from information_schema.triggers where condition;
2.3 查看触发器定义
show create trigger trigger_name
3、删除触发器
语法: drop trigger [schema_name.] trigger_name;
4、修改触发器
mysql中不支持修改触发器,只能先删除触发器,再创建。
注意:
触发器有三种类型触发器:insert,update,delete。
(1)非常遗憾,MYSQL中触发器中不能对本表进行 insert ,update ,delete 操作,以免递归循环触发
(2)对于update 只能用set 进行操作,insert与delete只能借助第二张表才能实现需要的目的
(3)网上有人说:借助连接查询语句试试看,实现思路,先将要符合删除条件的记录查询出来,作为一个新的集合(相当于一张中间表),在通过集合与当前表的 inner join