并发插入duplicate-key导致的死锁

       当mysql死锁时,可以通过show engine innodb status来查看死锁日志,可以看到发生死锁的sql。

        复现一下:

        先创建一个表

         

CREATE TABLE t1 (i INT, PRIMARY KEY (i)) ENGINE = InnoDB;

        session1

START TRANSACTION;
INSERT INTO t1 VALUES(1);

         session2

START TRANSACTION;
INSERT INTO t1 VALUES(1);

         session3

START TRANSACTION;
INSERT INTO t1 VALUES(1);

      然后session1执行

ROLLBACK;

     然后就会产生死锁了.

上一篇:帝国CMS-百度推送插件设置提交数据表报错:Duplicate entry '0' for key 'PRIMARY'


下一篇:Duplicate Detective for Mac(重复文件查找工具)