On Thu, Sep 28, 2006 at 03:26:36PM +0000, Mathias Laurent wrote: > If I do : > Session 1: > decibel=# begin; Does decibel have some meaning in some language other than english? > BEGIN > decibel=# select * from i where i=1 for update nowait; > i > --- > 1 > (1 row) > > decibel=# begin; > BEGIN > decibel=# select * from i where i=2 for update nowait; > i > --- > 2 > (1 row) > > Session 2 : > > decibel=# select * from i where i=1 for update nowait; > ERROR: could not obtain lock on row in relation "i" > decibel=# select * from i where i=3 for update nowait; > ERROR: current transaction is aborted, commands ignored until end of > transaction block > decibel=# ==> Why ? :'( > > Why i can't do any "Select for update" (current transaction aborted) after > having receive a not obtain lock ??? > Thank you for your answer ! Because as soon as there is an error in a transaction, the entire transaction is void. You have to rollback the transaction (or return to a savepoint). -- Jim Nasby jim@xxxxxxxxx EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)