Em 02-03-2011 15:28, Fernando Wobeto escreveu:
> pg_query('BEGIN');
> pg_query('LOCK TABLE tabela1');
> pg_query('SELECT codigo +1 FROM tabela1');
> pg_query('INSERT INTO tabela2(var1,var2,var3,var4)VALUES(1,2,3,4,5)');
> pg_query('UPDATE tabela3 SET var1=1');
> pg_query('COMMIT');
>
>
> por qual motivo um codigo desses no final das contas deixaria a tabela1
> travada por causa do lock.
>
O COMMIT ou ROLLBACK não ser executado? O tempo de espera (timeout) da página 
web é alto após o pedido de cancelamento pelo usuário? Algum deadlock causado 
por outra sessão fazendo um travamento nas tabelas tabela2 ou tabela3?

Eu não aconselharia o uso do LOCK TABLE. Ele causa muito mal para uma 
aplicação que permite o acesso concorrente dos dados (quase todas hoje em 
dia). Aconselho-te pensar novamente se isso é realmente necessário.


-- 
   Euler Taveira de Oliveira
   http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a