简介:触发器是由mysql的基本命令事件来触发某种特定操作,这些基本命令由增,删,改操作等事件来触发某些特定操作。满足触发器的触发条件
时,数据库系统就会自动执行触发器中定义的程序语句,可以令某些操作之间的一致性得到协调。
一:创建mysql触发器
在mysql中创建只有一条执行语句的触发器的形式如下。
create trigger 触发器名称 before|after 触发事件
on 表名 for each row 执行语句;
具体参数说明:
a:触发器名---指定要创建的触发器的名称
b:参数before|after指定触发器执行的时间,before指在触发事件之前执行触发语句,after指在触发事件之后执行触发语句。
c:触发事件参数指定数据库操作触发条件,包括insert,update,delete
d:表名----指触发时间操作的表
e:for each row表示任何一条记录上的操作满足触发事件都会触发该触发器。
f:执行语句指触发器被触发后执行的语句。
例如:
创建一个触发器,当在student表中执行插入操作前,向timelog表中自动插入系统当前时间
create trigger auto_save_ime before insert on student
for each row
insert into timelog(save_time) values(now());
二:创建多条执行语句的触发器
创建语句为:
create trigger 触发器名 before|after 触发事件
on 表名 for each row
begin
执行语句
end
将要执行的多条语句放入begin...end之间,多条语句之间需要用“;”隔开。
注意:一个表在相同的时间和相同的触发事件只能创建一个触发器。
三:在行级触发器中,用:new 和:old(称为伪记录)来访问数据变更前后的值。
但要注意,INSERT语句插入一条新记录,
所以没有:old记录,而DELETE语句删除掉一条已经存在的记录,
所以没有:new记录。UPDATE语句既有:old记录,也有:new记录,分别代表修改前后的记录