[Программирование]  как там надо писать в оракле для гарантированного увеличения значения
Сообщение было послано: Albatross (62.76.11.29)
Дата: Понедельник, Март 12 18:16:57 2018


мне нужно считать значение val из таблицы table_1 (по id=<N>;), заблокировав её на чтение, увеличить значение на определенную сумму, записать результат обратно, снять блокировку.
суть - чтобы никакая параллельная сессия не смогла прочитать неизмененное значение, пока я не запишу новый результат, иначе фигня получится.
последовательности (sequence) использовать не получится, так как сумма добавки различается.

на sql server было бы что-то вроде

update table_1 with (rowlock, holdlock) set value = value + <add> where id = <N>

как на оракле, не знаю


Сообщения в этом потоке
+ [Программирование]  как там надо писать в оракле для гарантированного увеличения значения (314) - Albatross (62.76.11.29) - 12/3/2018 18:16
+ Патч (217) - Albatross (31.173.85.25) - 12/3/2018 19:08
+ в оракловом READ COMMITED такое принципиально невозможно (223) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 19:05
+ А кто говорил про read commited? Этот уровень изолированности такое не может, да (-) (170) - Albatross (31.173.85.25) - 12/3/2018 19:06
+ потому что в оракле только два уровня изоляции: RC и ненужный (186) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 19:10
+ Я кстати, я думаю, ты неправ про SERIALIZABLE (177) - Albatross (31.173.85.25) - 12/3/2018 19:20
+ -> (179) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 19:39
+ то есть ты хочешь сказать (178) - Albatross (195.209.50.132) - 12/3/2018 21:05
+ еще раз (167) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 21:46
+ ну тем не менее (161) - Albatross (195.209.50.132) - 12/3/2018 22:34
+ да, только тебе это ничем не поможет (-) (163) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 22:41
+ Если быть точнее (179) - Albatross (31.173.85.25) - 12/3/2018 19:25
+ Ну через select for update можно же (177) - Albatross (31.173.85.25) - 12/3/2018 19:15
+ select for update - это не читатель (причем тут курсор вообще непонятно) (-) (158) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 19:27
+ select for update? (-) (193) - Мы ангельски прекрасны (193.84.255.13) - 12/3/2018 18:23
+ вроде подходит, а без курсоров нельзя? там вроде SELECT FOR UPDATE только для курсоров (-) (208) - Albatross (62.76.11.29) - 12/3/2018 18:32
+ не только для курсора, (214) - Мы ангельски прекрасны (193.84.255.13) - 12/3/2018 19:50
+ и как еще пишут в интернетах, блокировка будет только на апдейт, или аналогичный select for update (207) - Мы ангельски прекрасны (193.84.255.13) - 12/3/2018 19:58
+ правильно пишут (185) - Qasta (mail.k108.ru) - 13/3/2018 8:43
Ответить

Имя:   Пароль:    Автологин
Тема:
        

Отключить распознавание Тегов конференции
Отключить распознавание смайл-кодов
Получать уведомления об ответах по почте

 

Конференция основана на движке WWWConf 2.0 PRE BETA5, поддерживается и модерируется группой энтузиастов.