letehaha
@letehaha
Вникаю вo front-end

Что значит ошибка 1064 в MySQL?

Пытаюсь создать тригер. Суть тригера я думаю понятна
DELIMITER |
CREATE TRIGGER `setBusyForRoom` AFTER INSERT ON `accommodation` FOR EACH ROW 
BEGIN
	UPDATE TABLE `rooms` 
  SET `rooms`.`room_status` = 'Занят' 
  WHERE `rooms`.`id_room` = `accommodation`.`id_room`
END
DELIMITER ;

В итоге вот такая ошибка:
a0e5b4b05e844855b59d696371b96035.png

Я гуглил, 1064 в основном означает ошибку синтаксиса, но обычно это явно написано, а что значит #1064 - я без понятия. Если это ошибка в синтаксисе, то что я пишу не так?
P.S.: Пробовал писать с DELIMITER и без, ставить в разных местах ; и всё такое
UPD: room_status это ENUM() с четырьмя текстовыми значениями
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Посмотрите в консольке.

И из очевидного:
WHERE `rooms`.`id_room` = `accommodation`.`id_room`

Парсер не поймёт, что такое accommodation. Если вы хотели написать про обновляемые строку, которая спровоцировала вызов этого триггера - то для этого есть NEW и OLD псевдостроки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы