1
resposta

Onde está o erro?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Pessoal, estou fazendo igual ao professor no vídeo mas aparece o erro 1064

1 resposta

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! 🤔