LINUX.ORG.RU

Postgresql Блокировка строк


0

0

Как узнать, что строка заблокирована?

ЗАПРОС БЛОКИРУЕТ СТРОКУ:

begin;

select * from table where id=3 for update

...

До тех пор, пока не будет закрыта транзакция (commit;).

Как узнать, другим запросрм, что данная строка заблокирована? Заранее спасибо.

>Как узнать, другим запросрм, что данная строка заблокирована?

Ждать с небольшим таймаутом... :)

sundey
()
Ответ на: комментарий от sundey

Насколько я понимаю, nowait бывает только для табличных блокировок. Сказаь select ... for update nowait как в Oracle нельзя.

Поправьте меня, если я ошибаюсь.

Существует предположение, что ответ на вопрос находится в pg_locks. Похоже, что там живут все блокировки, но документированы только табличные.

anonymous
()
Ответ на: комментарий от anonymous

> Насколько я понимаю, nowait бывает только для табличных блокировок.

> Сказаь select ... for update nowait как в Oracle нельзя.

> Поправьте меня, если я ошибаюсь.

Можно сказать для блокировки: lock ... nowait. nowait появился только в 8 postgres, а lock был и в ранних...

sdbrother
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.