TRIGGER synax error mysql сказала # 1303 - Невозможно создать триггер из другой хранимой подпрограммы - phpmyadmin - PullRequest
0 голосов
/ 02 января 2019

У меня есть таблица БД, имя которой 'autoad', 2 столбца 'allads' и 'done', я хочу, чтобы перед обновлением выполнялся запрос chek, если значение (закончено)> значение (allads), затем выдается исключение, я использовал триггердля этого, но когда pat идет в phpmyadmin, выдайте ошибку: mysql сказал # 1303 - Невозможно создать триггер из другой сохраненной подпрограммы

CREATE TRIGGER before_insert_finished BEFORE INSERT ON autoad
FOR EACH ROW
BEGIN
   SET @CountOfCar = (SELECT allads FROM autoad)
   SET @CountOfCar2 = (SELECT finished FROM autoad
   IF @CountOfCar2>@CountOfCar THEN
ON UPDATE NO ACTION
END

отредактировано:

в интерфейсе phpmyadmin просто хотитетело кода, между begin....end, теперь я пытаюсь:

BEGIN
   SET @CountOfCar = (SELECT allads FROM autoad)
   SET @CountOfCar2 = (SELECT finished FROM autoad
   IF @CountOfCar2>@CountOfCar THEN
ON UPDATE NO ACTION
END

ошибка: MySQL сказал: # 1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который нужно использовать рядом с 'SET @ CountOfCar2 = (ВЫБЕРИТЕ завершено ОТ автоадресации IF @ CountOfCar2> @CountOfCar' в строке 3

1 Ответ

0 голосов
/ 02 января 2019

Когда вы создаете триггер в графическом интерфейсе phpMyAdmin, вам нужно всего лишь ввести тело триггера на панели определения между BEGIN ... END частью.

Изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...