Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
20.07.2019, 08:56
|
|||
---|---|---|---|
|
|||
UPDATE и JSONB |
|||
#18+
Пытаюсь понять насколько аккуратно можно обновлять поля такого типа. Есть таблица с полем JSONB. Одно из значений: {"a":1,"b":2} есть 2 updat'а update tbl set data=jsonb_set(data,'{a,1}','3'::jsonb) и update tbl set data=jsonb_set(data,'{b,1}','4'::jsonb) Если запросы выполняются от разных 2х пользователей, существует ли вероятность в следствии блокировок получить не ожидаемый результат {"a":3,"b":4}, а например {"a":1,"b":3}? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.07.2019, 08:57
|
|||
---|---|---|---|
|
|||
UPDATE и JSONB |
|||
#18+
последний json следует читать как {"a":1,"b":4} ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.07.2019, 11:41
|
|||
---|---|---|---|
UPDATE и JSONB |
|||
#18+
Troglodit, нет. Обновляется строка таблицы. Там же и берётся блокировка на обновление таблицы. Вторая транзакция будет ждать завершение первой как раз с целью узнать, какие именно значения считать исходными. Ну и не удалили ли строку вовсе. PS: для заданного json видимо подразумевался jsonb_set(data, '{a}', '3'::jsonb) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.07.2019, 12:37
|
|||
---|---|---|---|
|
|||
UPDATE и JSONB |
|||
#18+
Спасибо за ответ. Я надеялся, что все так и будет, просто с версионниками раньше не работал, да и работа с JSON пока темный лес, работает с кучей оговорок. PS. Да конечно вы правы, просто я копировал пример из скрипта с обновлением в массиве. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=1995110]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 157ms |
0 / 0 |