我读过MySQL 14.2.7.6的文档。由InnoDB中不同的SQL语句设置的锁
http://dev.mysql.com/doc/refman/5.0/en/innodb-locks-set.html
我的问题:
既然INSERT操作失败,它为什么要在行上设置一个锁。它是为了什么而获得锁的?
发布于 2014-01-14 12:09:25
.1。它需要对现有条目进行锁定,以便以后插入重复记录的尝试始终失败:
-- Transaction A
BEGIN TRANSACTION;
INSERT INTO mytable VALUE(1); -- fails as "duplicate"
-- Transaction B
BEGIN;
DELETE FROM mytable WHERE field = 1; -- must be put on hold, see below
-- Transaction A
-- transaction is still in progress
INSERT INTO mytable VALUE(1); -- must fail to stay consistent with the previous attempt.2。是的,是的
意图锁定协议如下:
https://stackoverflow.com/questions/21111676
复制相似问题