im stuck when calling stored procedures inside SELECT CASE on a trigger, it gives me the following error:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'empata(NEW.eqvis)) WHEN 'loc' THEN pierde(NEW.eqvis) WHEN 'vis' THEN g' at line 16
Here is the code:
DELIMITER | CREATE TRIGGER updpartido AFTER UPDATE ON partidos FOR EACH ROW BEGIN SET @vgls = vgoles(NEW.eqvis); SET @lgls = vgoles(NEW.eqloc); SET @vglsec = vgolesec(NEW.eqvis); SET @lglsec = vgolesec(NEW.eqloc); SELECT CASE WHEN @ vgls=@lgls THEN "emp" WHEN @vgls>@lgls THEN "loc" WHEN @vgls<@lgls THEN "vis" END INTO @st; SELECT CASE @st WHEN 'emp' THEN CALL empata(NEW.eqvis) WHEN 'loc' THEN CALL pierde(NEW.eqvis) WHEN 'vis' THEN CALL gana(NEW.eqvis) END INTO @dat; SELECT CASE @st WHEN 'emp' THEN CALL empata(NEW.eqloc) WHEN 'vis' THEN CALL pierde(NEW.eqloc) WHEN 'loc' THEN CALL gana(NEW.eqloc) END INTO @dat2; UPDATE equipos SET gf=@vgls , gc=@vglsec WHERE id=NEW.eqvis; UPDATE equipos SET gf=@lgls , gc=@lglsec WHERE id=NEW.eqloc; END;
|
But if I delete "CALL", triggers are added, but when I do some updating, it gives me the error "FUNCTION not found", because I made them stored procedures, and not as functions, because im was not going to return anything .. .
Any help is much appreciated!
source share