Re: SELECT FOR UPDATE без транзакции
От | Dmitry E. Oboukhov |
---|---|
Тема | Re: SELECT FOR UPDATE без транзакции |
Дата | |
Msg-id | 20180413112446.gkf4fpduh5y4gtfn@vdsl.uvw.ru обсуждение исходный текст |
Ответ на | Re: SELECT FOR UPDATE без транзакции (Sergei Kornilov <sk@zsrv.org>) |
Ответы |
Re: SELECT FOR UPDATE без транзакции
|
Список | pgsql-ru-general |
> Привет > Вы в принципе не можете сделать select вне транзакции. Если вы делаете > запрос вне транзакции - этот запрос будет обёрнут в отдельную транзакцию > автоматически. ну я примерно так и думал, просто решил уточнить :) > Не представляю зачем в вашем примере мог быть нужен s1 вообще - но да, > так брать блокировку возможно. Я немного неудачно пример записал. в моём случае второй запрос еще должен сделать insert в t2 на самом деле. то есть полеый алгоритм такой: 1. ставим лок на запись t1 2. записываем новую запись t2 3. аггрегатором вычисляем по t2 значение 4. модифицируем запись в t1 на которую поставили лок (условно говоря первая таблица - таблица со значениями неких счетчиков, вторая таблица - таблица с логом операций над счетчиками) В целом у меня подобная система работает без блокировок, но на одном процессе (конкурентность отстуствует). Сейчас хочу запустить второй параллельный процесс. Он будет очень редко пересекаться по ID записей, однако поскольку пересечения возможны - задумался над локами. -- . ''`. Dmitry E. Oboukhov <unera@debian.org> : :’ : `. `~’ GPG key: 4096R/08EEA756 2014-08-30 `- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756
Вложения
В списке pgsql-ru-general по дате отправления: