尝试使用 SELECT...FOR UPDATE in MySql 时出错
Error when trying to use SELECT...FOR UPDATE in MySql
我一直在尝试执行这一行命令:
START TRANSACTION; SELECT * FROM users where uid = 1 FOR UPDATE
在 phpMyAdmin 中。当我这样做时它抛出一个错误:
SQL query:
SELECT * FROM users where uid = 1 FOR UPDATE LIMIT 0, 25
MySQL said:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 0, 25' at line 1
我想做的是在执行更新查询时实现独占记录锁定。
根据 https://dev.mysql.com/doc/refman/8.0/en/select.html,LIMIT 需要在 FOR UPDATE 之前出现。因此,将您的查询更改为以下内容应该可以避免此错误:
START TRANSACTION; SELECT * FROM users WHERE uid = 1 LIMIT 0, 25 FOR UPDATE;
我一直在尝试执行这一行命令:
START TRANSACTION; SELECT * FROM users where uid = 1 FOR UPDATE
在 phpMyAdmin 中。当我这样做时它抛出一个错误:
SQL query:
SELECT * FROM users where uid = 1 FOR UPDATE LIMIT 0, 25
MySQL said:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 0, 25' at line 1
我想做的是在执行更新查询时实现独占记录锁定。
根据 https://dev.mysql.com/doc/refman/8.0/en/select.html,LIMIT 需要在 FOR UPDATE 之前出现。因此,将您的查询更改为以下内容应该可以避免此错误:
START TRANSACTION; SELECT * FROM users WHERE uid = 1 LIMIT 0, 25 FOR UPDATE;