现在的位置: 首页 > 综合 > 正文

Mysql 触发器的使用

2018年05月22日 ⁄ 综合 ⁄ 共 609字 ⁄ 字号 评论关闭

 

最进在项目中遇到一个问题,当在A表中插入一条信息后,同时也要更新B表信息,当时用JDBC的事务来完成,结果效果不是很好,用100个线程来模拟相关操作时,当Connection量到达一定数目后就会产生死锁现象,于是才想到用触发器来解决该问题

 

就不说MYSQL触发器格式该怎样写了,大家在晚上都查得到,但在使用过程中遇到了很多麻烦

 

在MYSQL中“;”表示命令的结束,可该触发器有多条语句,该怎么玩儿呢?

MYSQL提供了一个 DELIMITER关键字,用DELIMITER加一个特殊符号来表示命令的开始和命令的结束,

 

DELIMITER $$
CREATE TRIGGER TRIGGER_INSERT_RUN AFTER INSERT ON TableA FOR EACH ROW BEGIN  
UPDATE TableB SET ColumeName=ColumeName+1 WHERE TableB.ID=new.ID;
END $$
//DELIMITER $

 

$$定义命令的开始,END $$定义命令的结束

同时MYSQL也支持简单编程

如 IF ....

        THEN

END ID;

END;

 

还有一个New.Id 表示插入的那个新行的ID

 

还有一个OLD,该关键字一般在更新的时候使用,如OLD.columnName 表示要更新的那一行中,列名为columnName的数据的值

New 就表示假如更新后的值

 

不懂的话,请给我留言,在最短时间内帮您解决问题

 

抱歉!评论已关闭.