Сообщение ошибка синтаксиса (примерное положение: «for») (SQLSTATE 42601) означает, что парсер споткнулся на слове for – зарезервированном слове PostgreSQL. Важный нюанс: «примерное положение» часто указывает на токен сразу после настоящей ошибки, поэтому проверяйте и то, что стоит перед for.
Частые причины
- for как имя таблицы, колонки или алиаса без двойных кавычек.
- Конструкция блокировки FOR UPDATE / FOR SHARE стоит не на месте: она должна идти в конце запроса, после WHERE и ORDER BY.
- Опечатка, пропущенная запятая или незакрытая скобка непосредственно перед for.
- Ошибка в синтаксисе цикла PL/pgSQL: FOR … IN … LOOP.
Как исправить
- Если for — имя объекта, заключите его в двойные кавычки или, лучше, переименуйте:
SELECT "for" FROM schedule; -- надёжнее переименовать: period, slot
- Если это блокировка строк, поставьте FOR UPDATE в конец запроса, после WHERE и ORDER BY.
- Проверьте элемент прямо перед for – пропущенная запятая или скобка часто и есть настоящая причина.