在 Postgres 12 中更新整个 JSONB 对象
Update whole JSONB object in Postgres 12
我很难用新的 JSONB 对象替换名为 config
的列中的 JSONB 对象。
根据 Postgres (12) 文档,应该使用 jsonb_set
来更新现有的 JSON 记录:我正在尝试用以下指令替换现有的 JSONB :
UPDATE table SET config=jsonb_set(config, '{config}', '{"newKey":"newValue"}') WHERE myUpdateCondition;
问题是,情侣{"newKey":"newValue"}
被成功添加到config
但是之前的JSONB仍然存在于config
列:我的目标是完全 仅用 {"newKey":"newValue"}
更新 config
,不留下任何先前的 JSONB。
我正在阅读有关 jsonb_delete
的内容,但我没有在官方文档中找到它。
我如何更新 JSONB config
列,不保留任何先前的 JSONB 对象并将其完全替换为新的 JSONB 对象?
my goal is to totally update config with just {"newKey":"newValue"}, leaving nothing of the previous JSONB behind.
然后只需分配新值:
UPDATE table
SET config= '{"newKey":"newValue"}'
WHERE ...;
我很难用新的 JSONB 对象替换名为 config
的列中的 JSONB 对象。
根据 Postgres (12) 文档,应该使用 jsonb_set
来更新现有的 JSON 记录:我正在尝试用以下指令替换现有的 JSONB :
UPDATE table SET config=jsonb_set(config, '{config}', '{"newKey":"newValue"}') WHERE myUpdateCondition;
问题是,情侣{"newKey":"newValue"}
被成功添加到config
但是之前的JSONB仍然存在于config
列:我的目标是完全 仅用 {"newKey":"newValue"}
更新 config
,不留下任何先前的 JSONB。
我正在阅读有关 jsonb_delete
的内容,但我没有在官方文档中找到它。
我如何更新 JSONB config
列,不保留任何先前的 JSONB 对象并将其完全替换为新的 JSONB 对象?
my goal is to totally update config with just {"newKey":"newValue"}, leaving nothing of the previous JSONB behind.
然后只需分配新值:
UPDATE table
SET config= '{"newKey":"newValue"}'
WHERE ...;