Pessoal, estou fazendo igual ao professor no vídeo mas aparece o erro 1064
Pessoal, estou fazendo igual ao professor no vídeo mas aparece o erro 1064
Oi Fabio,
O erro 1064 geralmente indica um problema na sintaxe do seu código SQL.
No seu caso, o problema está na declaração do EXIT HANDLER
. O código de erro 1452 não é um código de erro padrão do MySQL que pode ser usado diretamente em um HANDLER
.
Você precisa usar o código de erro SQLSTATE, que é uma string de 5 caracteres, ou o número do erro MySQL.
Para corrigir, você pode usar o código de erro específico para violação de chave estrangeira, que é 1452, ou o SQLSTATE correspondente, que é '23000'.
Veja um exemplo de como você pode ajustar seu código:
DECLARE EXIT HANDLER FOR 1452
BEGIN
SET vMensagem = "Problema de chave estrangeira associado a alguma entidade da base.";
SELECT vMensagem;
END;
ou
DECLARE EXIT HANDLER FOR SQLSTATE '23000'
BEGIN
SET vMensagem = "Problema de chave estrangeira associado a alguma entidade da base.";
SELECT vMensagem;
END;
Lembre-se que o HANDLER
deve ser declarado antes de qualquer BEGIN
que use o mesmo. 😐
Para saber mais: Documentação oficial do MySQL sobre tratamento de erros.
Continue praticando e explorando as funcionalidades do MySQL! 🤔