Opa Fabricio, Obrigado pela resposta! :)
Realmente, acho que matei uma mosca com uma bazuca, o SET CONSTRAINTS deve ser o suficiente. Explicando a situação: é uma operação de atualização de BD, onde preciso garantir que todas as alterações (scripts) entrem ou sejam revertidas em caso de erro. Estes scripts tem (misturado) DDL e DML, e ao usar uma transação, sem alterar as constraints eu recebia erros como "ERROR: cannot ALTER TABLE "content" because it has pending trigger events", e foi ai que cheguei na solução que descrevi na mensagem anterior... Estou usando a versão 9.4.5 (64 bit). 2016-03-15 13:41 GMT-03:00 Fabrízio de Royes Mello <fabri...@timbira.com.br> : > On 15-03-2016 12:52, Murilo Habermann Torquato wrote: > > Fala pessoal, > > > > Para atualizar um banco de dados em produção (usando uma transação) > > precisamos alterar todas as constraints do banco de dados de "DEFERRABLE > > INITIALLY DEFERRED" para "DEFERRABLE INITIALLY IMMEDIATE". > > > > Para isso, usamos a instrução "ALTER TABLE xxxxxxxxxxx ALTER CONSTRAINT > > ............." > > > > Após terminar a atualização, voltamos as constraints ao estado original > > (DEFERRABLE INITIALLY DEFERRED), porém o seguinte erro começou a ser > > lançado ao tentar excluir registros: > > > > /2016-03-15 08:41:33 BRT [15681-1] brerp@brerp ERRO: > > AfterTriggerSaveEvent() called outside of query/ > > /2016-03-15 08:41:33 BRT [15681-2] brerp@brerp CONTEXTO: comando SQL > > "DELETE FROM ONLY "adempiere"."m_inoutline" WHERE $1 > > OPERATOR(pg_catalog.=) "m_inout_id""/ > > / > > / > > Não entendi o porque vc precisa fazer tudo isso em um deploy de banco, > pois esse ALTER TABLE precisará obter um AccessExclusiveLock na tabela > em questão, ou seja, nenhuma outra sessão conseguirá ler (select) ou > escrever nela (insert/update/delete). > > Vc já tentou usar o SET CONSTRAINTS [1] ??? > > Outro ponto, qual versão exata vc está utilizando (X.Y.Z)? > > > > Dois pontos estranhos, que não consegui entender se fizemos algo de > > errado, se tenho algum problema de configuração ou (acho muito dificil) > > ser um erro do postgres, já que o ALTER CONSTRAINT é um tanto quanto > "novo": > > > > 1 - se eu faço um DROP em todas as constraints do BD e depois ADD > > novamente o erro desaparece, tudo volta a funcionar normalmente > > 2 - se eu gero um dump do mesmo BD que está apresentando o erro, e > > restauro em um novo BD, (no mesmo servidor) o erro não ocorre, tudo fica > > normal > > > > Esse é o comportamento esperado. > > Att, > > > [1] http://www.postgresql.org/docs/current/static/sql-set-constraints.html > > -- > Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ > PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento > > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- [image: devCoffee Sistemas de Gestão Integrada] http://www.devcoffee.com.br <http://www.devcoffee.com.br/> Murilo H. Torquato / Diretor Técnico devCoffee Business Solutions muril...@devcoffee.com.br / (19) 993 247 735 Telefones: (19) 3555 2618 *||* (19) 3554 4031 *||* (11) 3522 3038 Endereço: Rua Paulo Rebessi, 665 - Cidade Jardim CEP: 13614-260 - Leme / SP [image: Facebook] <https://www.facebook.com/devcoffeebr>[image: Twitter] <https://twitter.com/devcoffeebr>[image: Google Plus] <https://plus.google.com/devcoffeebr>
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral