|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
есть таблица с данными и несколько клиентов. клиенты делают select * from table where "обработано" isnull limit 10; как сделать, чтоб клиенты не заселектили одни и те же строки? ну т.е. каким то образом нужно заапдэйтить заселекченые строки в одной транзакции. хелп... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2017, 08:26 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2017, 10:55 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
Либо вместо select и последующего update сделать напрямую update .... returning ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2017, 11:14 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
Melkij, returning не то, он только для одной строки работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2017, 02:51 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
vyegorov, спасибо, то что нужно! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2017, 02:51 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
[quot kkv79returning не то, он только для одной строки работает.[/quot] Поясните, ибо я другого мнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2017, 10:43 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
MelkijЛибо вместо select и последующего update сделать напрямую update .... returning Нельзя. Вторая сессия будет ждать коммита первой, а потом обновит уже обновленные записи. SKIP LOCKED - очень правильная фича. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 19:10 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
Sergei.Agalakov, Ваше утверждение применимо и к `FOR UPDATE SKIP LOCKED` — как только данная транзакция зафиксируется, любая другая может изменить эти записи. В случае с `UPDATE RETURNING` будут возвращены только те записи, которые были изменены. И да, после фиксации данные и в этом случае могут быть изменены любой другой транзакцией. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 19:28 |
|
как сделать select и одновременно update заселекченых строк?
|
|||
---|---|---|---|
#18+
Sergei.Agalakov, а никто не спорит, что skip locked штука полезная. Вопрос: а что ещё надо сделать именно в этой транзакции. Если только проставить статус "в работе" - т.к. нужно сделать медленный вызов внешнего апи - то одного returning без skip locked достаточно. Или дёрнуть обоих: Код: sql 1. 2. 3.
Что избавляет приложение от необходимости строить update. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 20:19 |
|
|
start [/forum/topic.php?fid=53&fpage=80&tid=1996771]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
110ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 213ms |
0 / 0 |