Oii Felipe, tudo bom?
Quando tem um erro dentro de uma procedure, é importante tratar apropriadamente, como continuar ou sair da execução do bloco de código atual e emitir uma mensagem de erro significativa. Onde entra a instrução DECLARE HANDLER, que é uma maneira fácil de definir manipuladores que tratam de condições gerais, como avisos ou exceções, para condições específicas, por exemplo, códigos de erro específicos. Um exemplo é o que o instrutor fez na aula com o CASE.
Indo para a sintaxe:
DECLARE ação HANDLER FOR valor_condição statement;
Se uma condição cujo valor corresponde a valor_condição
, o MySQL vai executar o statement
e vai continuar ou sair do bloco de código atual com base na ação
.
A ação
aceita um dos seguintes valores:
CONTINUE
: a execução do bloco de código (BEGIN... END) continua.EXIT
: a execução do bloco de código, onde o manipulador é declarado, termina.
O valor_condição
especifica uma condição particular ou uma classe de condições que ativam o manipulador. O valor_condição
aceita um dos seguintes valores:
- Um código de erro do MySQL.
- Uma condição nomeada associada a um código ou
SQLSTATE
valor de erro MySQL.
Volto ao exemplo do CASE que o instrutor realizou em aula, foi tratado o erro do case não está completo .
Sobre a segunda dúvida eu não compreendi bem ela, poderia reformular, por gentileza?
Fico aguardando :)