我只是个简单的触发器,
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版本,这个版本支持触发器,所以我很迷茫。这是触发器如何在顶部声明的问题吗?我不习惯语法“createdefiner”,我认为这可能是问题所在,但是当您尝试创建一个新触发器时,mysql workbench会生成这个语法。
谢谢
1条答案
按热度按时间hrirmatl1#
一个简单的语法错误,在前面的冒号旁边,必须删除。你的第一句话用了不同的引号
nfl
发生。以下是正确的形式: