Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql CASE NOT FOUND for CASE STATEMENT su una stored procedure

Questo è un problema specifico di MySQL.
In MySQL, un caso deve sempre avere una corrispondenza valida, quindi una clausola ELSE.
E poiché l'istruzione dopo la corrispondenza non può essere vuota, puoi riempirla con un blocco vuoto in questo modo:

ELSE BEGIN END;

Quindi un caso valido sarebbe, ad esempio:

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;