2010-01-14 3 views
4

L'exécution de cette procédure provoque le blocage de MySQL (ou de phpMyAdmin). Je dois arrêter MySQL avec la commande XAMPP, qui se bloque et "ne répond pas" environ 20 secondes avant de s'arrêter. Je crois que cela est causé par la commande delimiter, qui commence par elle-même les problèmes. J'ai essayé d'utiliser un délimiteur différent ("//") sans effet.MySQL/phpMyAdmin se bloque à partir de 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 ; 

Répondre

0

la commande de mise à jour devrait:

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

le where après la set clause

+0

Je ne savais pas que cela comptait, merci! mais la chose s'arrête après seulement DELIMITER $ –

5

Comme il se trouve, phpMyAdmin a un champ marqué "delimiter:" sous la zone de requête SQL. L'utiliser plutôt que la commande résout le problème. D'autres recherches expliquent que "DELIMITER" n'est pas une commande SQL, mais une commande généralement implémentée par tous les ui SQL.