tiopijama 0 Denunciar post Postado Junho 26, 2012 Bom dia! Eu estou com o seguinte problema. Eu preciso inserir uma linha na mesma tabela que foi inserido um dado, desde que a linha inserida possua um dado específico. Eu fiz a seguinte trigger: DELIMITER | DROP TRIGGER IF EXISTS atualiza_download | CREATE TRIGGER atualiza_download AFTER INSERT ON selects_checkboxes FOR EACH ROW BEGIN IF NEW.Tabela_sel = 'downloads' THEN INSERT INTO selects_checkboxes (Campo_txf, Tabela_sel, Campo_tabela_sel) VALUES (NEW.Campo_txf, 'usuarios_ftp', 'Departamento_chb'); END IF; END; | DELIMITER ; Ele cria a trigger normal, só que está retornando o seguinte erro quando eu insiro um dado com o campo 'downloads' na coluna Tabela_sel: "Can't update table 'selects_checkboxes' in stored function/trigger because it is already used by statement which invoked this stored function/trigger." Eu andei pesquisando, e parece que o mysql não aceita que uma trigger insira uma nova linha na mesma tabela que foi modificada (parece que funciona se for fazer update, mas não achei nada para insert). Eu gostaria de saber se caso isso realmente não funcione, de que forma eu poderia inserir esta linha na mesma tabela ou se caso funcione, o que estou fazendo de errado? OBS.: eu utilizei BEFORE no lugar do AFTER e dá o mesmo erro. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 26, 2012 O problema é que poderia ser criada uma chamada recursiva infinita (não é o caso) mas daí o erro. Melhor tratar isto na camada de aplicação. Compartilhar este post Link para o post Compartilhar em outros sites
tiopijama 0 Denunciar post Postado Junho 26, 2012 É verdade Motta. Mas você não acha uma sacanagem que o mysql não permita que os desenvolvedores destruam com o servidor? hehehe Brincadeiras a parte, eu já consegui resolver o problema aqui. Por sorte, a aplicação alimenta uma outra tabela com o mesmo dado da coluna Campo_txf, que eu utilizei para fazer o trigger. Daí eu redirecionei o trigger pra esta tabela. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 26, 2012 É verdade Motta. Mas você não acha uma sacanagem que o mysql não permita que os desenvolvedores destruam com o servidor? hehehe Servidor após fim do insert ... :) Compartilhar este post Link para o post Compartilhar em outros sites
tiopijama 0 Denunciar post Postado Junho 26, 2012 até que ficou bonitinho hehehe Só mais uma pergunta: como faz para marcar o tópico como resolvido? Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Junho 26, 2012 Apenas informe quando resolver que algum moderador marcará Compartilhar este post Link para o post Compartilhar em outros sites