在MySQL中,创建触发器语法如下:
create trigger trigger_name
trigger_time trigger_event on tbl_name
for each row
trigger_stmt
其中,
trigger_name
:标识触发器名称,用户自行指定;trigger_time
:标识触发时机,取值为 before 或 after;trigger_event
:标识触发事件,取值为 insert、update 或 delete;tbl_name
:标识建立触发器的表名,即在哪张表上建立触发器;trigger_stmt
:触发器程序体,可以是一句 sql 语句,或者用 begin 和 end 包含的多条语句,每条语句结束要分号结尾。
【new 与 old 详解】:
MySQL 中定义了 new 和 old,用来表示
触
发
器
的
所
在
表
中
,
触
发
了
触
发
器
的
那
一
行
数
据
\textcolor{red}{触发器的所在表中,触发了触发器的那一行数据}
触发器的所在表中,触发了触发器的那一行数据。
具体地:
1、在 insert 型触发器中,new 用来表示将要(before)或已经(after)插入的新数据;
2、在 update 型触发器中,old 用来表示将要或已经被修改的原数据,new 用来表示将要或已经修改为的新数据;
3、在 delete 型触发器中,old 用来表示将要或已经被删除的原数据;
使用方法: new.columnName (columnName 为相应数据表某一列名)