如果我创建如下 SQL 语句
UPDATE table SET a='000' WHERE b='Me!';
假设查询找到满足条件的行,另一个事务是否有可能在我进行更新之前更改字段“b”的值?
如果是这种情况,我假设当我尝试提交时我的事务将会失败?
最佳答案
如果另一个事务已经更新并且未提交具有 b = Me!
的行,则会出现行锁定异常。如果已提交,则意味着 b 值已更改,您的查询将不会影响该行。
第二个选项,您已经更新了该行,并且另一个查询想要在您提交之前更新该行。在这种情况下,第二个事务将出现行锁定错误。如果您已经提交,其他查询将不会影响该行。
提交时您不会收到任何错误消息或异常。如果有任何错误,您将在运行更新查询时得到。
关于mysql - UPDATE.. WHERE... - 交易可以在两者之间发生吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28145844/