我试图在我修改另一个表时创建一个更新表的触发器... 这是我的代码:
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
它必须做的是,当我更新匹配时,它必须自动运行此触发器并更新目标。
但它给了我一个错误。 我做错了什么?谢谢,祝你有愉快的一天......!
答案 0 :(得分:2)
我注意到你的触发器中没有任何语句终结符,这会产生一些抱怨,例如,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 ;