Я пытался создать простой триггер BEFORE INSERT
в таблице базы данных (MySQL v 5.7), но я продолжаю получать неопределенное сообщение «# 1064 ... синтаксическая ошибка», которое не помогает решить проблему.MySQL 5.7 Создать ошибку синтаксиса триггера?
Вот SQL:
CREATE OR REPLACE TRIGGER `CREATE_QUIZ_TRIG` BEFORE INSERT ON `quiz`
FOR EACH ROW BEGIN
SET NEW.ACTIVE = UPPER(NEW.ACTIVE);
SET NEW.CREATED = NOW();
END
/
Все, что я пытаюсь сделать, это обеспечить соблюдение колонки в верхний регистр, а затем вставить текущую дату & время в столбец временной метки. Я после документации от:
https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
и понять, что для выражения многого заявления я должен переопределить разделитель в начале создания триггера, но происходит то же самое «1064 #» ошибки.
Это еще более запутанно, потому что, когда я использую интерфейс phpmyadmin для создания того же самого триггера, он отлично работает, но не будет, когда я экспортирую сгенерированный SQL и попытаюсь создать триггер, используя это !?
Спасибо за любую помощь
, но не будет, когда я экспортирую сгенерированный SQL и попытаюсь создать триггер, используя это !? - Что это значит? –
PhpMyAdmin позволяет выводить SQL, используемый для создания таблицы, используя ее графический интерфейс. При создании таблицы с использованием этого GUI триггер был успешно создан - поэтому я экспортировал созданный SQL и попытался создать таблицу, используя этот SQL вместо графического интерфейса; это не сработало, что я считал своеобразным. Оказывается, проблема заключалась в том, что PHPMyAdmin автоматически устанавливает разделитель по умолчанию для триггера на ';', и именно поэтому я получал синтаксическую ошибку при попытке создать триггер из-за полуколоней после 'SET. . 'command (s) - он думал, что это были разделители –