2010-01-14 4 views
4

Запуск этой процедуры заставляет замораживать MySQL (или phpMyAdmin). Я должен остановить MySQL с помощью команды XAMPP, которая замерзает и «не отвечает» примерно за 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 teams set live = live-1 where id = new.victim; 
update teams where id = new.shooter set score = score+points; 

where после пункта set

+0

Я не знал, что имело значение, спасибо! но вещь бросается в глаза после просто DELIMITER $ –

5

Как оказывается, PhpMyAdmin имеет поле с пометкой "разделитель:" под окном SQL запроса. Использование этого решения, а не команды, решает проблему. Дальнейшие исследования объясняют, что «DELIMITER» - это не команда SQL, а команда, обычно реализованная всеми SQL ui.