一、什么是触发器?
1、mysql触发器是:在当前的数据库表中设置一个对每行数据的一个监听器,监听相关事件,每当事件发生时。会执行一段由sql完成的一段功能代码。这段功能代码也是sql语句。
2、触发器的元素:
事件,执行代码。
二、创建触发器
create trigger 触发器名字 事件 执行代码;
执行代码就是sql语句或sql语句块。
1、事件内容:
插入:insert 删除:delete 修改:update
事件的时机:执行之前,执行之后。内容和时机组合共有六种事件。
Before insert ,Before delete ,before update ,after insert ,after delete ,after update.
注意:这个时机,是针对其后表的内容的监控。
比如:
create trigger jiaobanfei after update on t_student
for each row
update t_class set t_class_money=t_class_money+20;
此处的after update on是说t_student表的每一行更新后,就立即更新t_class表中的t_class_money字段。
2、具体语法
删除触发器:
drop trigger 触发器名字;
注意事项:
1、触发器不能同名
2、目前mysql只支持一类事件设置一个触发器。
三、管理触发器
1、查看触发器:
show create trigger trigger_name;
2、在触发器中获取触发该触发程序时的数据。
利用触发程序内的new 和old来完成。
注意:insert中不能使用old,delete中不能使用new。
3、多条sql语句下的触发器
sql语句块用begin end包裹。
整个触发器语句用delimiter包裹。
例如:
delimiter $$
create trigger ruxue after insert on czbk_student
for each row
begin
update class set stu_count=stu_count+1;
update class set cz_money=zc_money+2e;
end
$$
delimiter;