触发器,顾名思义,基于某具体的DML语句的触发或执行,来执行一个动作。mysql触发器在6个不同的集成点进行定义:
before insert:插入之前执行触发器
after insert:插入之后执行触发器
before update:插入之前执行触发器
after update:插入之后执行触发器
before delete:删除之前执行触发器
after delete:删除之后执行触发器
每个点只能定义一个触发器,触发器只可以应用在for each row上,没有每个语句级的功能。
也没有代替触发器的语法。
可以将其看做一类特殊的存储过程,sp中可以使用的语句 ,触发器基本上都可以使用
基本语法如下:
向TrigerTable 插入数据之后理解向TrigerTable01 插入相同的数据
delimiter $$
CREATE TRIGGER `Test_trig` AFTER INSERT ON `TrigerTable` FOR EACH ROW BEGIN
insert into TrigerTable01(uname,uage)
VALUES(new.uname,new.uage) ;
end;
$$ delimter ;
更新TrigerTable之后 插入数据
delimiter $$
CREATE TRIGGER `Test_trig_update` AFTER UPDATE ON `TrigerTable` FOR EACH ROW BEGIN
insert into TrigerTable01(uname,uage)
VALUES(new.uname,new.uage) ;
end;
$$ delimiter ;
删除之后插入数据
delimiter $$
CREATE TRIGGER `Test_trig_delete` AFTER DELETE ON `TrigerTable` FOR EACH ROW BEGIN
insert into TrigerTable01(uname,uage)
VALUES(old.uname,old.uage) ;
end;
$$ delimiter ;
参考链接:
http://my.oschina.net/fxhover/blog/133819
http://www.cnblogs.com/amboyna/archive/2008/01/27/1055178.html