1.触发器是做什么的
触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。
简单的来说就是:是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行
2.语法
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
begin
......
end
trigger_time是触发程序的动作时间。它可以是before或after,以指明触发程序是在激活它的语句之前或之后触发。
trigger_event指明了激活触发程序的语句的类型。trigger_event可以是下述值之一:
·insert:将新行插入表时激活触发程序,例如,通过insert 、load data和replace语句。
·update:更改某一行时激活触发程序,例如,通过update语句。
·delete:从表中删除某一行时激活触发程序,例如,通过delete和replace语句。
注意:对于具有相同触发程序动作时间和事件的给定表,不能有两个触发程序。例如,对于某一表,不能有两个before update触发程序。但可以有1个before update触发程序和1个before insert触发程序,或1个before update触发程序和1个after update触发程序。
3.举例
学生表
班级表
实现一个在学生表中增加学生的操作并触发班级表中num的更新
下面进行插入
insert into stu (name,classID) values('Jam',1)
重新查看表中的数据:
显示插入成功,在查看class表中的数据
触发器执行完成
4.出发器在什么情况下使用
(1)如例子:在执行某一个事件的操作会导致另一个事件的改变,但又不想自己手动同步另一个事件
(2)数据库同步
在数据库表上部署触发器,通过触发器将CUD操作的数据捕获并保存到到临时中间表,每条记录需要有操作属性,Insert Delete Update,然后通过间隔调度任务读取中间表变化数据 封装为消息,进行传输
(3)以后继续添加。。。。