一、触发器介绍
触发器(trigger), 事先为某张表绑定好一些代码, 当这张表数据发生改变时,系统会自动调用这些绑定的代码.
事件类型:insert, delete, update
触发时间:befor, after
事件对象:表中的每一条记录(针对行的)
每张表中最多只能有6个触发器。(事件类型和触发时间共有6种组合,每种组合只能有一个)
二、创建触发器
-- 创建触发器 delimiter $$ create trigger 触发器名字 after insert on 事件对象(表名) for each row begin update goods set cnt = cnt - 1 where id = 1; -- SQL语句 end $$ delimiter ;
三、查看触发器
1. show triggers [like 'pattern'];
2. show create triggers 触发器名字;
3. 所有触发器都保存在一张表中:information_schema.triggers
select * from information_schema.triggers;
四、删除触发器
drop trigger 触发器名字;
五、触发器的记录
不管触发器是否触发了, 只要当某种操作准备执行, 系统就会把准备操作的记录的当前状态和操作即将完成后的状态保存下来:
当前状态保存在old中; -- insert是只有new, 使用方法:old.字段名
将来的状态保存在new中; -- delete时只有old, new.字段名