【发布时间】:2010-11-09 08:22:53
【问题描述】:
在手册中它说 InnoDB 具有行级锁定,那么为什么如果我使用 FOR UPDATE 语句选择一些行,它不会让我在该表中插入新行?新行毕竟不应该被锁定,它没有被选中。
【问题讨论】:
在手册中它说 InnoDB 具有行级锁定,那么为什么如果我使用 FOR UPDATE 语句选择一些行,它不会让我在该表中插入新行?新行毕竟不应该被锁定,它没有被选中。
【问题讨论】:
在 InnoDB 中,对自动增量列的插入会导致表锁定。选择一行 FOR UPDATE 会导致行级锁定。
由于如果存在行锁则无法获取表锁,因此 UPDATE 会阻止 INSERT 直到其事务被提交。
【讨论】: