问题描述
我尝试通过data
更新json
表的books
列(类型为jsonb_set
)
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
我发现在doc中,jsonb_set
仅适用于jsonb
类型
jsonb_set(target jsonb,path text[],new_value jsonb [,create_missing boolean])
但是我没有特权将列类型更新为jsonb
。那么在这种情况下我该如何解决?
解决方法
通过类型转换来掌握一个简单的技巧
UPDATE books
SET data = jsonb_set(data::jsonb,'{borrowers}','[{"name":"john doe","time":"1:00PM"}]')
WHERE id= 'some_id';