Обсуждение: locks

Поиск
Список
Период
Сортировка

locks

От
"Jose' Soares Da Silva"
Дата:
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'


Re: [QUESTIONS] locks

От
Roelof Osinga
Дата:
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.
----------------------------------------------------------------