Я использую графический интерфейс триггера sequelpro и могу добавить триггер обновления без проблем, но как только я пытаюсь ОБЪЯВИТЬ переменную, выдается ошибка ...
Это работает
IF (new.name != "")
AND (old.name IS NULL OR old.name = "")
AND (old.created = old.modified)
THEN
INSERT INTO
log(location,location_id,target,target_id,message,created) VALUES
("task",old.id,NULL,NULL,CONCAT("New task
"",new.name,"" created on ",DATE_FORMAT(new.modified, '%b %e, %Y @ %l:%i%p')),old.modified);
END IF
Если я добавлю переменные
DECLARE myvar VARCHAR;
IF (new.name != "")
AND (old.name IS NULL OR old.name = "")
AND (old.created = old.modified)
THEN
INSERT INTO
log(location,location_id,target,target_id,message,created) VALUES
("task",old.id,NULL,NULL,CONCAT("New task
"",new.name,"" created on ",DATE_FORMAT(new.modified, '%b %e, %Y @ %l:%i%p')),old.modified);
END IF
throws
MySQL said: You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'DECLARE myvar VARCHAR;
IF (new.name != "")
AND (old.name IS NULL OR old.name = ' at line 1
Я попытался добавить его через панель запросов, с полным синтаксисом и получить ту же ошибку
delimiter //
CREATE TRIGGER test
AFTER UPDATE
ON task FOR EACH ROW
BEGIN
DECLARE myvar VARCHAR;
IF (new.name != "")
AND (old.name IS NULL OR old.name = "")
AND (old.created = old.modified)
THEN
INSERT INTO
log(location,location_id,target,target_id,message,created) VALUES
("task",old.id,NULL,NULL,CONCAT("New task
"",new.name,"" created on ",DATE_FORMAT(new.modified, '%b %e, %Y @ %l:%i%p')),old.modified);
END IF
END//
delimiter ;
Мое соединение SequelPro с базой данных AWS RDS.
Спасибо за помощь!