0

话题:

在 MySQL 中,是否有必要在 BEGIN 和 COMMIT 语句中使用 FOR UPDATE,或者 begin 和 commit 本质上是做同样的事情?

编辑:“开始/提交与一系列'FOR UPDATE'基本上做同样的事情吗?”

4

2 回答 2

3

如果你想锁定select for update你应该启动事务的行,在MySQL 文档中我们可以看到:

笔记

使用 SELECT FOR UPDATE 锁定行以进行更新仅在禁用自动提交时适用(通过使用 START TRANSACTION 开始事务或将自动提交设置为 0。如果启用自动提交,则不锁定符合规范的行。

您可以FOR UPDATE在不启动事务的情况下使用,但它不安全...

于 2013-07-08T04:28:43.170 回答
0

我的问题是 BEGIN / COMMIT 语句中的 FOR UPDATE 是否是多余的。我想不是......我认为......因为 BEGIN...COMMIT 只锁定写入,而不是读取。或者可能不是?

于 2013-08-10T22:14:24.893 回答