在我的应用程序中,我想从 InnoDB 表中获取一个值,然后在单个事务中递增并返回它。我还想锁定我要更新的行,以防止另一个会话在事务期间更改值。我写了这个查询;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
BEGIN TRANSACTION;
SELECT @no:=`value` FROM `counter` where name='booking' FOR UPDATE;
UPDATE `counter` SET `value` = `value` + 1 where `name`='booking';
SELECT @no;
COMMIT;
我想知道隔离级别是否正确以及是否需要“FOR UPDATE”语句。我做对了吗?