Fabrízio de Royes Mello <[email protected]> escreveu:
2013/2/18 Sérgio Antônio dos Santos <[email protected]>
Olá

Estou com uma dúvida com relação a lock de tabelas no pg, o contexto é o 
seguinte:

Tenho uma tabela cujo alguns campos são monitorados por triggers, e em um 
determinado momento preciso fazer alterações nestes campos ignorando as 
triggers.

A pergunta é:

Quando eu chamo a function e desabilito as triggers (
ALTER TABLE schema.table DISABLE TRIGGER tg_x;
ALTER TABLE schema.table DISABLE TRIGGER tg_y;
) 

Durante a execução desta function a tabela fica em lock?


Sim... para vc executar esse ALTER TABLE... ENABLE/DISABLE TRIGGER... é 
necessário obter um ExclusiveLock, ou seja, ninguém conseguirá acessar a tabela 
(mesmo SELECT) até sua transação finalizar, e para obter esse ExclusiveLock ele 
vai aguardar finalizar transacoes ativas...

Att,

-- 
Fabrízio de Royes Mello


Caso não queira que este procedimento aconteça,  trate as exceções de execução 
em sua aplicação,  orientando internamente a trigger na execução ou não do dado 
procedimento implementado. As vezes um ExclusiveLock pode ser problema em 
algumas tabelas... E uma saída é esta.
Att. Rieg.


Envio efetuado a partir do Galaxy Tab Samsung 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a