如何正确使用select for update ?



我想在更新之前锁定行,我有以下代码:

select * from package where package.id = ? for update;
update
package
set
package.txt = ?,

where
package.id = ?

这样做会收到错误消息。而且找不到正确的方法。如果我的SQL没有select * from package where package.id = ? for update;,它可以完美地工作。

由于您锁定的是正在更新的同一个表,因此不需要锁行,因为更新查询会自动锁行:

MyISAM:锁表

InnoDB:锁行

最新更新