是否需要行锁定来增加事务中的值

时间:2015-03-05 07:50:56

标签: mysql

以下代码是否按预期工作(counter_field每次增加1)?

START TRANSACTION;
(other queries here)
UPDATE mytable SET counter_field = counter_field + 1;
(other queries here)
COMMIT;

我是否需要使用行锁定?我应该使用SELECT ... FOR UPDATE还是SELECT ... LOCK IN SHARE MODE

不确定是否重要,但我使用的是具有REPEATABLE READ(默认)隔离级别的InnoDB。

1 个答案:

答案 0 :(得分:0)

执行任何UPDATE查询时会有自动行锁定(SELECT ... FOR UPDATE)。