Mysql TRIGGER ОБНОВЛЕНИЕ с функциями - PullRequest
1 голос
/ 24 октября 2011

я пытаюсь создать триггер, который обновляет таблицу, когда я изменяю другую таблицу ... Вот мой код:

CREATE TRIGGER updpartido AFTER UPDATE ON partidos
ON EACH ROW
    BEGIN
        SET @vgls = SELECT vgoles(NEW.eqvis)
        SET @lgls = SELECT vgoles(NEW.eqloc)
        UPDATE equipos SET gf=@vgls WHERE id=NEW.eqvis
        UPDATE equipos SET gf=@lgls WHERE id=NEW.eqloc
    END

То, что он должен сделать, - когда я обновляю совпадение, он должен автоматическиЗапустите этот триггер и обновите цели.

Но это дает мне ошибку.Что я делаю не так?Спасибо и хорошего дня ...!

1 Ответ

2 голосов
/ 24 октября 2011

Я заметил, что в вашем триггере нет терминаторов операторов, которые будут вызывать некоторые жалобы, потому что, например, SET @lgls = SELECT vgoles(NEW.eqloc) UPDATE equipos SET gf=@vgls WHERE id=NEW.eqvis не имеет никакого смысла.Таким образом, вам нужно несколько точек с запятой в триггере, но вы также должны получить эти точки с запятой через анализатор, временно изменив разделитель.Вы также используете ON EACH ROW, когда оно должно быть FOR EACH ROW:

delimiter |
CREATE TRIGGER updpartido AFTER UPDATE ON partidos
FOR EACH ROW
    BEGIN
        SET @vgls = SELECT vgoles(NEW.eqvis);
        SET @lgls = SELECT vgoles(NEW.eqloc);
        UPDATE equipos SET gf=@vgls WHERE id=NEW.eqvis;
        UPDATE equipos SET gf=@lgls WHERE id=NEW.eqloc;
    END;
|
delimiter ;
...