下面是我用来擦除JSONB列中一些字段的查询,我尝试将名字和姓氏随机化,所以希望使用类似md5(random()::text)的内容作为值。
update people set
data = to_jsonb(data) || '{"firstName": "random_text", "lastName": "random_text"}'
where id = 'b3c09005-7afb-4ad6-922d-76078875e59e';
我尝试将“random_text”替换为md5(...),但收到错误“详细信息:标记“md5”无效。"。我还尝试使用||但那也没用。
2条答案
按热度按时间2ul0zpep1#
您可以使用json生成器函数来生成json对象:
看起来
data
的数据类型是JSONB
,如果是这样,就不需要在上面使用to_jsonb()
;||
是足够的。dfuffjeb2#
应该将字符串与随机函数连接起来,然后将其强制转换为
jsonb
-上面将创建一个名和姓随机的
jsonb
对象。