Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何更新jsonb列并放置文本数组_Arrays_Json_Postgresql - Fatal编程技术网

Arrays 如何更新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

我有这样的jsonb专栏:

{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