Mysql触发器语法与项目中的一次使用

Mysql触发器语法与项目中的一次使用

  • 触发器简介 : 触发器(Trigger)是一个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件触发。

触发器经常用于加强数据的完整性约束和业务规则等。

  • 本次新建触发器背景:有两个数据表 A|B,A是在另外的系统中同步过来的,表中数据每3分钟会在更新一次。B是在本系统内使用的,由前端调用接口将A表中某一条数据导入到B表中。那么,在此时刻之后,A表中如数据有更新,AB两表数据便不一致了。数据以A表为准,所以,使用触发器是一个方案。下面展示如何新建这一个触发器。

  • 触发器语法

-- 1. 新建触发器

CREATE TRIGGER 触发器名称 BEFORE|AFTER 触发事件

ON 表名 FOR EACH ROW

BEGIN

触发器程序体

END

-- {BEFORE|AFTER} 触发器触发的时机

-- {INSERT|UPDATE|DELETE} 触发器事件

-- FOR EACH ROW 子句通知触发器每隔一行执行一次动作,而不是对整个表执行一次。

--  (针对insert和delete语句,每一行都触发)

--2. 查看触发器

show triggers\G

-- 3. 删除

drop trigger 触发器名称

  • 触发器中 new && old

针对update操作,new表示的是更新后的值,old表示的是原来的数据。

针对insert操作,new表示的是插入的值。

针对delete操作,old表示的是删除后的值。


  • 示例

DELIMITER ;;

CREATE TRIGGER `case_update_to_case2` AFTER UPDATE ON `jz_case_detail` FOR EACH ROW BEGIN

UPDATE case2_baseinfo SET lasj = new.SL_LRSJ ,belongTo = new.DEPARTMENTCODE, caseName= new.AJMC,caseClass=new.AJLX,case_status = new.AJSTATE,masterSN = new.AJZBRY,masterName=new.RESERVATION01,assist_masterSN=new.AJXBRY,assist_masterName=new.RESERVATION02,introduction=new.ZYAQ where caseID = new.AJBH;

END

;;

DELIMITER ;

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容