定义形式:
create trigger 触发器名 触发时机 触发事件 on 表名 for each row
begin
这里就是要执行的代码。。。跟定义函数时的内部代码一样,但不能有“return语句”;
即:可以有:
变量的使用;
流程的使用;
增删改语句的使用;
end;
说明:
1,触触发时机,只有:before,after
2,触发事件,只有:insert,update,delete
3,在触发器内部,有2个特殊关键字很常用:
new: 代表在进行insert或update的时候,该“新行”数据,可以用它来取得其中任意一个“字段”的值,比如:
set @v1 = new.id; //取得新行的id
set @v2 = new.age; //取得新行的age值;
old: 代表在进行delete或update的时候,该“旧行”数据,可以用它来取得其中任意一个“字段”的值,同new;
4,触发器的整体含义是:对于该表所进行的任何一行的增(或删或改)之前(或之后),都会去执行其中所预先设定的代码。
举例:
做2个触发器,
其中一个在某个表insert的时候,能够将该表的部分字段(比如用户名,密码)数据,写入另一个表中。
另一个在某个表delete的时候,能够将另一个表中的对应数据删除!