问题描述
我是 cockroach DB 的新手,想知道以下问题是否可行
我的表中的一列是JSON类型的,其中的示例数据如下
{
"first_name": "Lola","friends": 547,"last_name": "Dog","location": "NYC","online": true,"Education": [
{
"id": "4ebb11a5-8e9a-49dc-905d-fade67027990","UG": "UT Austin","Major": "Electrical","Minor": "Electronics"
},{
"id": "6724adfa-610a-4efe-b53d-fd67bd3bd9ba","PG": "north Eastern","Major": "Computers","Minor": "Electrical"
}
]
}
有没有办法替换 JSON 中的 "id" 字段,如下所示以获得动态生成的 id?
"id": gen_random_uuid(),
解决方法
是的,这应该是可能的。要生成包含随机生成的 UUID 的 JSON 数据,您可以使用如下查询:
root@:26257/defaultdb> select jsonb_build_object('id',gen_random_uuid());
jsonb_build_object
--------------------------------------------------
{"id": "d50ad318-62ba-45c0-99a4-cb7aa32ad1c3"}
如果您想就地更新已存在的 JSON 数据,您可以使用 jsonb_set
函数(请参阅 JSONB Functions)。