2011-01-16 2 views
1
CREATE TRIGGER event_house_dealed AFTER UPDATE ON house FOR EACH ROW 
BEGIN 
DECLARE finished INT; 
IF NEW.isdeal = 1 THEN 
    SET finished = 1; 
END IF; 
END; 

Сервер MySQL Keep говоряЧто случилось с синтаксисом триггера MYSQL?

SQL Error (1064): У вас ошибка в синтаксис SQL; проверьте руководство, которое соответствует к серверу MySQL версии для корректного синтаксиса использовать вблизи 'IF NEW.isdeal = 1 THEN SET закончил = 1' в строке 1

Спасибо.

ответ

2

Вы должны изменить разделитель перед определением триггера

DELIMITER || 
CREATE TRIGGER event_house_dealed AFTER UPDATE ON house FOR EACH ROW 
BEGIN 
DECLARE finished INT; 
IF NEW.isdeal = 1 THEN 
    SET finished = 1; 
END IF; 
END|| 

Тогда, конечно, изменить разделитель обратно;

DELIMITER ; 

То же самое для объявления функций и хранимых процедур