Gerar Exceções/Erro em Triggers MYSQL 5.0
Gostaria de saber no MYSQL como gero exceções em triggers , exemplo do raiseerror no sqlserver.
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.
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
Curtidas 0
Respostas
Wagnerbianchi
22/08/2006
Olá Olimpo,
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!!
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
Tolimpio
22/08/2006
Bom, esse link lhe ajudará bastante:
[url]http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html[/url]
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
Wagnerbianchi
22/08/2006
Ola T,
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:
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
Helbert Fernandes
22/08/2006
Senhores,
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.
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