小编tim*_*dev的帖子

使用 Postgres,如果为 NULL,我如何使用 UPDATE 插入新的 jsonb 值,或者如果值已经存在则修改 json?

我在 Postgres(版本 10)中有一个表,其中包含一个可为空的 jsonb 列:

CREATE TABLE j_play (
id                  serial PRIMARY KEY,
created_ts          TIMESTAMPTZ,
data                JSONB
); 
Run Code Online (Sandbox Code Playgroud)

可能最初插入的记录没有 json 数据,因此该列将为空。

| id | created_ts                   | data
| 1  | 2020-09-11 18:18:37.47755+00 | [null]
Run Code Online (Sandbox Code Playgroud)

我想更新此记录,以便如果 'null' 添加一个 json 对象,并且如果一个 json 对象已经存在,则对其进行修改。

UPDATE j_play SET data = '{"a": "12345"}'
| id | created_ts                   | data
| 1  | 2020-09-11 18:18:37.47755+00 | {"a": "12345"}

UPDATE j_play SET data = '{"b": "54321"}'   -- This is obviously bogus but the intention is to amend …
Run Code Online (Sandbox Code Playgroud)

sql postgresql json sql-update jsonb

2
推荐指数
1
解决办法
300
查看次数

标签 统计

json ×1

jsonb ×1

postgresql ×1

sql ×1

sql-update ×1