Arrays 如何更新jsonb列并放置文本数组
我有这样的jsonb专栏:Arrays 如何更新jsonb列并放置文本数组,arrays,json,postgresql,Arrays,Json,Postgresql,我有这样的jsonb专栏: {name: "Toby", occupation: "Software Engineer", interests: ""} 现在,我需要更新该行,并将一个文本数组(如[“排球”,“足球”,“游泳])放入兴趣字段。 到目前为止,我所尝试的: UPDATE users SET data = jsonb_set(data, '{interests}', ARRAY['Volleyball', 'Football
{name: "Toby", occupation: "Software Engineer", interests: ""}
现在,我需要更新该行,并将一个文本数组(如[“排球”,“足球”,“游泳])
放入兴趣
字段。
到目前为止,我所尝试的:
UPDATE users SET data = jsonb_set(data, '{interests}', ARRAY['Volleyball', 'Football', 'Swim'], true) WHERE id=84;
数据
是jsonb列
但它返回一个错误:
错误:函数jsonb_set(jsonb,未知,整数[],布尔值)不存在
存在
提示:没有与给定名称和参数类型匹配的函数。你
可能需要添加显式类型转换
附言:
我使用的是PostgreSQL 10,第三个参数也必须是JSONB类型
UPDATE users SET data = jsonb_set(data, '{interests}', '["Volleyball", "Football", "Swim"]'::jsonb, true) WHERE id=84;
这也会起作用,这与使用ARRAY
的示例更接近:
UPDATE users SET data = jsonb_set(data, '{interests}', to_jsonb(array['Volleyball', 'Football', 'Swim']), true) WHERE id=84