Sql 使用jsonb_set()更新JSON类型列
我试图通过Sql 使用jsonb_set()更新JSON类型列,sql,json,postgresql,sql-update,jsonb,Sql,Json,Postgresql,Sql Update,Jsonb,我试图通过jsonb\u set更新books表的data列(类型为json) UPDATE books SET data = jsonb_set(data, '{borrowers}', '[{"name":"john doe","time":"1:00PM"}]') WHERE id= 'some_id'; 并遇到以下错误: > ERROR: function jsonb_set(json, unkn
jsonb\u set
更新books
表的data
列(类型为json
)
UPDATE books
SET data = jsonb_set(data, '{borrowers}', '[{"name":"john doe","time":"1:00PM"}]')
WHERE id= 'some_id';
并遇到以下错误:
> ERROR: function jsonb_set(json, unknown, unknown) does not exist
我发现,jsonb_集
只与jsonb
类型一起工作
jsonb\u集(目标jsonb,路径文本[],新值jsonb[,创建缺少的布尔值])
但是我没有权限将列类型更新为
jsonb
。那么,在这种情况下,我该如何解决呢?想出了一个简单的打字技巧
UPDATE books
SET data = jsonb_set(data::jsonb, '{borrowers}', '[{"name":"john doe","time":"1:00PM"}]')
WHERE id= 'some_id';