运行此过程会导致MySQL(或phpMyAdmin)冻结。我必须使用XAMPP命令停止MySQL,该命令在停止前约20秒冻结并“无响应”。我相信这是由delimiter命令引起的,它本身就开始出现问题。我尝试使用不同的分隔符(“//”)无效。
DELIMITER $
CREATE TRIGGER coroner AFTER INSERT ON events
FOR EACH ROW BEGIN
UPDATE teams WHERE id = NEW.victim SET live = live-1;
UPDATE teams WHERE id = NEW.shooter SET score = score+points;
END
$
DELIMITER ;
答案 0 :(得分:5)
事实证明,phpMyAdmin在SQL查询框下方有一个标记为“delimiter:”的字段。使用它而不是命令解决了问题。进一步的研究解释说“DELIMITER”不是一个SQL命令,而是一个通常由所有SQL ui实现的命令。
答案 1 :(得分:0)
更新命令应该:
update teams set live = live-1 where id = new.victim;
update teams where id = new.shooter set score = score+points;
where
子句之后的set