Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql CASE NOT FOUND pour CASE STATEMENT sur une procédure stockée

C'est un problème spécifique à MySQL.
Dans MySQL, un cas doit toujours avoir une correspondance valide, donc une clause ELSE.
Et comme la déclaration après la correspondance ne peut pas être vide, vous pouvez la remplir avec une bloc vide comme ceci :

ELSE BEGIN END;

Ainsi, un cas valide serait, par exemple :

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;