在 cockroachDB 中插入 JSON 数据类型时,是否可以在 JSON 数据中使用 cockroach gen_random_uuid() 函数

问题描述

我是 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)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...