📅  最后修改于: 2023-12-03 15:17:04.881000             🧑  作者: Mango
在 PostgreSQL 中,我们可以使用 jsonb 数据类型存储一些 JSON 格式的信息。jsonb_set 函数是一种常用的修改 JSON 数据的操作函数。
jsonb_set (target jsonb, path text[], new_value jsonb[, create_missing boolean])
jsonb_set 函数用于在指定路径下,将 JSON 对象中的指定键值对替换为新的键值对。如果路径中不存在该节点,则可以根据 create_missing 参数来控制是否新建节点。
-- 创建一个 JSONB 类型的表
CREATE TABLE example (
id SERIAL,
data JSONB NOT NULL
);
-- 插入一条需要修改的 JSON 数据
INSERT INTO example (data) VALUES ('{"name": "张三", "age": 18}');
-- 使用 jsonb_set 函数更新数据
UPDATE example SET data = jsonb_set(data, '{name}', '"李四"');
-- 查询修改后的数据
SELECT * FROM example;
代码输出结果:
id | data
----+---------------------
1 | {"name": "李四", "age": 18}
jsonb_set(data, '{list,0,name}', '"张三"')
表示在一个名为 list 的数组中的第一个元素的名称为张三。