Jose' Soares Da Silva wrote:
>
> Hi all,
>
> After almost one year using PostgreSQL, I'm still discovering things about
> locks, we have little documentation about it:
>
> I know that one can lock a table in the following ways:
>
> * BEGIN statement:
> If you don't explicit lock a table using LOCK statement, it will be
> implicit locked only at first UPDATE, INSERT or DELETE operation.
>
> * DECLARE statement:
> Currently, PostgreSQL doesn't support READ ONLY cursors, once a cursor
> is declared, other users can only read data referenced by cursor.
> Write operations to the referenced table like UPDATE, INSERT,
> DELETE or DROP aren't allowed until the end of transaction.
>
> * LOCK statement:
> LOCK don't allows read access to locked tables by the other users.
> If another user try to SELECT a locked table, he must attend
> until the locked table is released.
>
> Just wondering if there are other ways to lock tables.
> Any replay will be appreciate. Thanks, Jose'
>
I believe it to be so that BEGIN locks each table when it first
occurs in a statement. With multiple statements per transaction
this may lead to a deadlock.
Roelof
----------------------------------------------------------------
Home is where the http://eboa.com/ is.
----------------------------------------------------------------