Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql CASE NOT FOUND für CASE STATEMENT in einer gespeicherten Prozedur

Dies ist ein MySQL-spezifisches Problem.
In MySQL muss ein Fall immer eine gültige Übereinstimmung haben, also eine ELSE-Klausel.
Und da die Anweisung nach der Übereinstimmung nicht leer sein darf, können Sie sie mit einem auffüllen leerer Block wie folgt:

ELSE BEGIN END;

Ein gültiger Fall wäre also zum Beispiel:

CASE @news  
  WHEN 'emp' THEN  
    UPDATE equipos SET pe=pe+1,pg=pg-1 WHERE [email protected];  
  WHEN 'loc' THEN  
    UPDATE equipos SET pp=pp-1,pg=pg+1 WHERE [email protected];  
  ELSE BEGIN END;  
END CASE;