概述
触发器的定义:进行数据库应用软件的开发时,我们有时会碰到表中的某些数据改变,希望同时引起其他相关数据改变的需求,利用触发器就能满足这样的需求。它能在表中的某些特定数据变化时,自动完成某些查询。运用触发器不仅可以简化程序,而且可以增加程序的灵活性。
触发器是一类特殊的事务:可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete)
创建触发器的语法
create trigger 触发器名称
after/before (触发时间,是在监视事件做了之前,还是在监视事件做了以后)
insert/update/delete(监视事件)
on 表名(监视地址)
for each row (是语句级触发器,还是行级触发器)
begin
sql1; (内部语句为前面设定触发事件之后,所做的语句操作)
...
sqlN;
end
清楚触发器的四个关键点
监视谁(哪张表):order
监视动作(事件):insert
触发时间:after
触发事件:update
简单的触发器例子
delimiter $ //作用是设置结束标志
create trigger t1
after
insert
on order(表)
/** 在oracle触发器中,触发器分语句级触发器,和行级触发器
每一行受影响,触发器都执行,叫做行级触发器
在oracle中for each row 如果不写,无论Update语句一次影响了多少行,都只执行1次 **/
for each row
begin
declare rnum int; //定义一个变量
select xx into rnum from goods where gid = new.gid; //查询到的数据,放到定义的变量中
if new.much > num then
set ...= xxx;
end if;
update goods set num = num -new.much where gid = new.gid;
//new表示获取操作之后表的行,同理old代表获取操作之前表的行
end$
两个补充的命令:
查看trigger: show trigger
删除tirgger: drop trigger
最后
以上就是传统火龙果为你收集整理的用MySQL写个触发器的全部内容,希望文章能够帮你解决用MySQL写个触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复