Se você passar a trigger para AFTER ao invés de BEFORE suas chances de não ter lock "aumentam", mas não "desaparecem". Analisando por cima suas necessidades, não acredito que a melhor solução seja realmente adicionar uma coluna em uma trigger, isso me parece uma tarefa administrativa, ou seja, sempre adicione a coluna (talvez junto com a execução do comando CREATE TRIGGER) e na trigger simplesmente considere que ela já existe (pode até fazer a verificação e dar um RAISE EXCEPTION caso não exista).
PS: Caso a trigger seja genérica para várias tabelas, você pode pensar em usar herança nessas tabelas para organizar melhor as coisas. Atenciosamente, -- Matheus de Oliveira Bacharelado em Ciências de Computação Laboratório de Computação de Alto Desempenho - LCAD<http://www.lcad.icmc.usp.br/> Instituto de Ciências Matemáticas e de Computação - ICMC<http://www.icmc.usp.br/> Universidade de São Paulo - USP <http://www.sc.usp.br/> On Fri, Mar 16, 2012 at 10:07 AM, Eloi Ribeiro <[email protected]>wrote: > O melhor será separar esta função em duas: > A primeira que verifique se os campos existem e se não os criam. > E a segunda como disparador para que se actualizem com os inserts e > updates. > Obrigado pela ajuda! > > > Eloi Ribeiro > GIS Analyst > 39,45º -0,40º > flavors.me/eloiribeiro > > > No dia 16 de Março de 2012 13:04, Flavio Henrique Araque Gurgel < > [email protected]> escreveu: > > > Cancelando as demais transações/conexões também resolve seu problema >> > *se, e somente se* isto não for um problema no seu cenário. >> >> Minha experiência com DDL dentro de funções é de resultado sempre >> inesperado. >> Se a função é específica para ser executada em horário controlado, >> geralmente é uma mão na roda. DBAs de madrugada sempre se dão melhor >> executando funções do que comandos mais complexos ou scripts. >> Já se a função é para ser chamada automaticamente por causa de uma >> necessidade de uma aplicação ou usuário, a chance de lock é >> monstruosa, e é o que está ocorrendo com o colega. >> >> []s >> Flavio Gurgel >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
