锁定 innodb 行并获得实时版本
Locking innodb row and get a live version
我在写一个网游,里面有一个叫出兵的板块。当一个帐户上的两个或更多用户尝试发送一个动作时,队伍会加倍。
我想从 mysql 获取该行的实时版本,并阻止对该行的任何读取、写入和更新,直到我完成。
真的可以吗?因为我只 select 用于在 innodb 参考中以共享模式更新和锁定。
任何帮助都适用。
请在下面找到 mysql 文档以锁定 innodb 中的特定行:
BEGIN;
SELECT ... FROM t ... WHERE ... FOR UPDATE;
...
UPDATE t ...;
COMMIT;
其他人可以读取 t
中的行,但如果他们试图修改 SELECT
触及的行,他们将被延迟或死锁。
您真的需要阻止给定行的所有 读取 吗?请进一步说明您的情况。
我在写一个网游,里面有一个叫出兵的板块。当一个帐户上的两个或更多用户尝试发送一个动作时,队伍会加倍。
我想从 mysql 获取该行的实时版本,并阻止对该行的任何读取、写入和更新,直到我完成。
真的可以吗?因为我只 select 用于在 innodb 参考中以共享模式更新和锁定。
任何帮助都适用。
请在下面找到 mysql 文档以锁定 innodb 中的特定行:
BEGIN;
SELECT ... FROM t ... WHERE ... FOR UPDATE;
...
UPDATE t ...;
COMMIT;
其他人可以读取 t
中的行,但如果他们试图修改 SELECT
触及的行,他们将被延迟或死锁。
您真的需要阻止给定行的所有 读取 吗?请进一步说明您的情况。