Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql CASE NOT FOUND para CASE STATEMENT em um procedimento armazenado


Este é um problema específico do MySQL.
No MySQL, um case deve sempre ter uma correspondência válida, portanto, uma cláusula ELSE.
E como a instrução após a correspondência não pode ser vazia, você pode preenchê-la com um bloco vazio assim:
ELSE BEGIN END;

Assim, um caso válido seria, por exemplo:
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;