mysql 触发器,锁

7哥 发布于 2016/06/24 12:19
阅读 351
收藏 0
一下触发器,在一个事务里。同时对一张表进行的更新和插入,会造成锁吗?
程序异常: nested exception is java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
 
delimiter ||
drop trigger if exists trigger_on_post_cmt ||
CREATE TRIGGER trigger_on_post_cmt after insert ON post_cmt
for each row
begin
    UPDATE post_count set cmt=cmt+1 WHERE tid=new.tid AND name='post';/*帖子评论数加1*/
    INSERT INTO post_count(tid,name)VALUE (new.cid,'post_cmt');/*记录评论的的统计*/
end||
delimiter ;



加载中
0
o
oneflower
触发器更新与操作的是同一张表,会产生锁
参考自:
MySQL INNODB锁等待分析
0
空无一长物
我怀疑是trigger触发次数过多
0
快速开发师
快速开发师
如果你真心想学好事务和锁什么的,自己做试验,纸上写的定理理解起来有很多歧义。开两个控制台执行一下就看出来了,而且很简单刺激,各种现象会发生。
返回顶部
顶部