Ошибка при попытке использовать SELECT ... FOR UPDATE в MySql - PullRequest
0 голосов
/ 28 мая 2020

Я пытался выполнить эту строковую команду:

START TRANSACTION; SELECT * FROM users where uid = 1 FOR UPDATE

в phpMyAdmin. Когда я это делаю, выдает ошибку:

SQL запрос:

SELECT * FROM users where uid = 1 FOR UPDATE LIMIT 0, 25

MySQL сказал:

У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с 'LIMIT 0, 25' в строке 1

Я пытаюсь реализовать эксклюзивную блокировку записи при обновлении запрос выполнен.

1 Ответ

1 голос
/ 28 мая 2020

Для 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;
...