mysql触发器,mysql触发器实例
触发器 一、定义:由insert、update、delete等事件来触发某种特定操作。触发器触发的执行语句可以有多个。 注:触发器中不能包含start transaction、commit或rollback等关键词,也不能包含call语句。 1、格式: create trigger 触发器名 berfor|after 触发事件 on 表名 for each row 执行语句 2、格式: mysql>DELIMITER && mysql>create trigger 触发器名 berfor|after 触发事件 on 表名 for each row begin 执行语句; 执行语句; end && mysql>DELIMITER ; 注:for each row表示任何一条记录上的操作满足触发事件都会触发该触发器.MYSQL默认是以“;”作为 结束执行语句。在创建触发器过程中需要用到分号,为了解决这个问题可以用delimiter语句 如:“delimiter &&”,可以将结束符号变成“&&”,当触发器创建完成后可以用命令“delimiter;” 来将结束符号变成分号。一个表在相同触发时间的相同触发事件,只能创建一个触发器。 二、查询触发器 1、语句:show triggers \G,该语句查询指定数据库中所有的触发器 2、查询information_schema数据库下的triggers表: select * from information_schema.triggers where trigger_name='触发器名' \G 三、删除触发器 drop trigger 触发器名; 四、触发器的应用 1、对于insert而言,新增的行用new来表示 行中的每一列的值用new.列名来表示 create trigger tg2 after insert on o for each row begin update g set num=num-new.much where id=new.gid; end$ 2、对于delete而言,要删除的行用old表示 3、对于update而言,要更新行旧值的用old表示,新值的用new表示 create trigger tg2 after insert on o for each row begin update g set num=num+old.much-new.much where id=old.gid; end$
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。