相关疑难解决方法(0)

只选择未锁定的行mysql

我通过以下查询在一个事务中锁定了一行

START TRANSACTION;

SELECT id FROM children WHERE id=100 FOR UPDATE;
Run Code Online (Sandbox Code Playgroud)

在另一个交易中,我有一个查询如下

START TRANSACTION;

SELECT id FROM children WHERE id IN (98,99,100) FOR UPDATE;
Run Code Online (Sandbox Code Playgroud)

它会超出错误锁定等待超时.

这里100已被锁定(在第一次交易中)但是ids 98,99没有被锁定.如果在上面的查询中只有100行被锁定,那么有任何可能返回98,99的记录.所以结果应该如下

ID

===

98

99

===

应忽略Id 100,因为100被事务锁定.

mysql transactions

8
推荐指数
2
解决办法
5090
查看次数

标签 统计

mysql ×1

transactions ×1