我是靠谱客的博主 传统火龙果,最近开发中收集的这篇文章主要介绍用MySQL写个触发器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

触发器的定义:进行数据库应用软件的开发时,我们有时会碰到表中的某些数据改变,希望同时引起其他相关数据改变的需求,利用触发器就能满足这样的需求。它能在表中的某些特定数据变化时,自动完成某些查询。运用触发器不仅可以简化程序,而且可以增加程序的灵活性。

触发器是一类特殊的事务:可以监视某种数据操作(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写个触发器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部