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


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

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

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

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


Сообщения в этом потоке
+ [Программирование]  как там надо писать в оракле для гарантированного увеличения значения (365) - Albatross (62.76.11.29) - 12/3/2018 15:16
+ Патч (257) - Albatross (31.173.85.25) - 12/3/2018 16:08
+ в оракловом READ COMMITED такое принципиально невозможно (270) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 16:05
+ А кто говорил про read commited? Этот уровень изолированности такое не может, да (-) (219) - Albatross (31.173.85.25) - 12/3/2018 16:06
+ потому что в оракле только два уровня изоляции: RC и ненужный (216) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 16:10
+ Я кстати, я думаю, ты неправ про SERIALIZABLE (223) - Albatross (31.173.85.25) - 12/3/2018 16:20
+ -> (210) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 16:39
+ то есть ты хочешь сказать (198) - Albatross (195.209.50.132) - 12/3/2018 18:05
+ еще раз (200) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 18:46
+ ну тем не менее (191) - Albatross (195.209.50.132) - 12/3/2018 19:34
+ да, только тебе это ничем не поможет (-) (194) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 19:41
+ Если быть точнее (219) - Albatross (31.173.85.25) - 12/3/2018 16:25
+ Ну через select for update можно же (207) - Albatross (31.173.85.25) - 12/3/2018 16:15
+ select for update - это не читатель (причем тут курсор вообще непонятно) (-) (200) - кадум тив (c49-177-142-45.brasd4.vic.optusnet.com.au) - 12/3/2018 16:27
+ select for update? (-) (247) - Мы ангельски прекрасны (193.84.255.13) - 12/3/2018 15:23
+ вроде подходит, а без курсоров нельзя? там вроде SELECT FOR UPDATE только для курсоров (-) (256) - Albatross (62.76.11.29) - 12/3/2018 15:32
+ не только для курсора, (250) - Мы ангельски прекрасны (193.84.255.13) - 12/3/2018 16:50
+ и как еще пишут в интернетах, блокировка будет только на апдейт, или аналогичный select for update (235) - Мы ангельски прекрасны (193.84.255.13) - 12/3/2018 16:58
+ правильно пишут (226) - Qasta (mail.k108.ru) - 13/3/2018 5:43
Ответить

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

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

 

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