Fórum Gerar Exceções/Erro em Triggers MYSQL 5.0 #30791
22/08/2006
0
Ou algo parecido como exibir uma mensagem mensagem, dependendo de alguma condição, exemplo do comando ´Print´ no sqlserver.
Alguem sabe algum comando equivalente no MYSQL 5.0 ?
Pesquisei sobre, mas ate agora nao achei nada.
Agradeco desde ja a todos,
Abcs, Olimpio.
Tolimpio
Curtir tópico
+ 0Posts
22/08/2006
Wagnerbianchi
Tudo bem?
Bom, esse link lhe ajudará bastante:
[url]http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html[/url]
Caso tenha dúvidas quanto a implementação, após ler o indicado, continue postando no fórum!!
Abraço!!
Gostei + 0
22/08/2006
Tolimpio
Havia lido esse tópico. Porem fala mais sobre, insert, update e delete em outras tabelas.
Sobre o ´Print´ do mysql. Tentei algo como:
CREATE TRIGGER TesteOnAfterInsert AFTER INSERT ON grupos_clientes FOR EACH ROW select ´Grupo Inserido com sucesso´
Porem retorna a seguinte mensagem :
´Not Allowed to return a result set from a trigger´
Sobre a sintaxe, acho que esta correta. Fiz a mais simples possível.
Abcs.
Gostei + 0
18/11/2006
Wagnerbianchi
TRIGGERS no MySQL ainda nao suportam retornos. Voce podera chamar uma funcao, uma view ou uma stored procedure que lhe envie uma mensagem.
TRIGGERS no mysql somente maniulam resultados com NEW ou OLD.
De uma olhada nisso: http://dev.mysql.com/doc/refman/5.0/en/triggers.html
Qualquer duvida, continue o post... :wink:
Gostei + 0
15/08/2013
Helbert Fernandes
Esta correto que Triggers no MySQL ainda não suportam retornos ou tratamento de erros como try catch, raiseerror ou qualquer outra coisa parecida.
Porém sempre há um jeitinho de gerar o efeito desejado.
Faça o seguinte:
1-Crie um tabela que será a geradora de erros ex: CREATE TABLE tb_GeraErro (id varchar(200), primary key (id))
2-Popule esta tabela com todas as mensagens de exceção usadas no sistema. ex: INSERT tb_GeraErro VALUE (Erro de exceção),(Erro Fatal);
3-Dentro da trigger, de preferência BEFORE, faça uma regra com inserção do erro nesta tabela. ex: IF (condição) THEN INSERT tb_GeraErro VALUE (Erro de exceção); END IF;
A exceção será gerada.
A mensagem de erro não será muito elegante, pois será uma duplicidade de chave mostrando o erro.
Mas funciona,
Sua trigger gerará o erro não executando o passo AFTER, ou seja, não fará o delete, update ou insert.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)