|
Тема
|
Lock Managment in Oracle 11
|
|
Автор |
AйeзCeдaй ((бойна)) |
Публикувано | 28.03.13 16:21 |
|
така.
Имам таблица TBL1 и TBL2. Триггер, after update or insert on TBL1 - ъпдейтва полета в таблица 2.
Проблемът ми е следният.
user1 e във edit mode в TBL2, TBL2.id=100. Няма commit или rollback.
В този момент user50 е в edit mode в TBL1. Изпълнява Commit и..... всичко зацикля.
Въпросът ми е как да информирам user50, че в този момент user1 e locked въпросният row (т.е row TBL2.id=100) с lock mode RX.
Някакви идеи? Някой да се сблъскавал с подобен проблем?
| |
Тема
|
Re: Lock Managment in Oracle 11
[re: AйeзCeдaй]
|
|
Автор |
shinygw (Xantia 1.8i '97) |
Публикувано | 04.04.13 02:00 |
|
declare
pragma exception_init( UNABLE_TO_LOCK_EXCEPTION, <номера на грешката за неуспешно заключване на ред>);
BEGIN
select 1 from tbl2 where id=100 for update nowait ;
exception when UNABLE_TO_LOCK_EXCEPTION then raise;
END;
| |
|
|
|
|