2010-01-14 46 views
4

运行此过程会导致MySQL(或phpMyAdmin)冻结。我必须停止从XAMPP命令停止MySQL,该命令在停止前约20秒停止并“没有响应”。我相信这是由定界符命令引起的,它自己开始解决问题。我尝试过使用不同的分隔符(“//”)来不起作用。MySQL/phpMyAdmin从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

update命令应该:

update teams set live = live-1 where id = new.victim; 
update teams where id = new.shooter set score = score+points; 

whereset条款

+0

我不知道那很重要,谢谢!但是只有DELIMITER $之后才会停止 – 2010-01-14 23:40:03

5

事实证明,phpMyAdmin的有一个字段标后 “分隔符:” 在SQL查询框下方。使用它而不是命令可以解决问题。进一步的研究解释说,“DELIMITER”不是一个SQL命令,而是一个通常由所有SQL用户执行的命令。