【发布时间】:2015-12-24 03:24:56
【问题描述】:
我目前正在为所有表使用带有 InnoDB 存储引擎的 Mysql。
所以,我想知道这是否是一个真正的问题,是否有解决方案。
例如,我将使用数据库事务向用户收费: 1.查看他的余额 2.减去他的余额 3.将此余额记入某处 4. 提交
如果更新发生在 #1 之后和 2 和 3 之前会发生什么。如果用户撤回或购买其他东西导致他的余额为零。这将导致失去这种平衡。据我了解,第 1 步只会导致共享锁,不会阻塞写入等。
有没有通用的解决方案?
【问题讨论】:
-
select for update(dev.mysql.com/doc/refman/5.6/en/innodb-locking-reads.html) -
非常感谢!如果您将其发布为答案,我会接受。
标签: mysql database transactions locking innodb