MySQL Workbench неверный синтаксис - PullRequest
0 голосов
/ 29 октября 2018

Я довольно простой триггер,

CREATE DEFINER = CURRENT_USER TRIGGER 'nfl`.`games_AFTER_INSERT` AFTER 
INSERT ON `games` FOR EACH ROW
BEGIN
 UPDATE nfl.teams t
 SET t.passingyards = t.passingyards +:new.homepassingyards,
     t.rushingyards = t.rushingyards +:new.homerushingyards
 WHERE t.teamname =:new.hometeamname;
END

однако я получаю странную синтаксическую ошибку:

"+" is not valid at this position for this server version, expecting '-', '*', '/', '%', '<<','>>',...

Я использую MySQL версии 8.0.11 и механизм хранения по умолчанию InnoDB. Я искал версию MySQL, и триггеры поддерживаются этой версией, поэтому я совершенно заблудился здесь. Это проблема с тем, как триггер объявлен сверху? Я не привык к синтаксису «CREATE DEFINER» и думал, что это может быть проблемой, однако именно это генерируется MySQL Workbench, когда вы пытаетесь создать новый триггер.

Спасибо

1 Ответ

0 голосов
/ 30 октября 2018

Простая синтаксическая ошибка рядом с ведущими двоеточиями, которые должны быть удалены. Вы использовали разные цитаты для своего первого nfl вхождения. Вот правильная форма:

CREATE DEFINER = CURRENT_USER TRIGGER `nfl`.`games_AFTER_INSERT` AFTER INSERT ON `games` FOR EACH ROW
BEGIN
 UPDATE nfl.teams t
 SET t.passingyards = t.passingyards + new.homepassingyards,
     t.rushingyards = t.rushingyards + new.homerushingyards
 WHERE t.teamname = new.hometeamname;
END
...