我有如下jsonb专栏:
{name: "Toby", occupation: "Software Engineer", interests: ""}
现在,我需要更新行,并将类似['排球‘,'football’,'swim']
的文本数组放入interests
字段。到目前为止我所尝试的:
UPDATE users SET data = jsonb_set(data, '{interests}', ARRAY['Volleyball', 'Football', 'Swim'], true) WHERE id=84;
data
是jsonb列
但它返回一个错误:
错误:函数jsonb_set(jsonb,unknown,integer[],boolean)不存在
提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。
附注:
我正在使用PostgreSQL 10
第三个参数也需要是JSONB类型的。
UPDATE users SET data = jsonb_set(data, '{interests}', '["Volleyball", "Football", "Swim"]'::jsonb, true) WHERE id=84;
这也会起作用,这与您使用数组
的示例稍微接近一点:
UPDATE users SET data = jsonb_set(data, '{interests}', to_jsonb(array['Volleyball', 'Football', 'Swim']), true) WHERE id=84