首页 > 解决方案 > 在postgres中将整数附加到整数数组

问题描述

我正在尝试在 postgres 表中的现有整数数组中添加一个新的整数值。我在这里使用 array_append 方法,但出现“无法将类型 jsonb 转换为整数 []”错误。我的更新查询如下。

注意-我只是将它用于学习目的,所以我故意将电话号码保存为整数。

点击这里查看表结构和错误截图

update querytesting set jsondoc=jsondoc||jsonb_build_object(jsondoc->'PhoneNumber',array_append(((jsondoc->'PhoneNumber')::int[]),'6789')) where id=1;

标签: postgresql

解决方案


您必须提取数组,附加新数字,使用新数组创建一个新 JSON 并存储它。如果您将数据存储在规范化数据模型而不是 JSON 中,那么这是一个乏味且低效的过程。

UPDATE querytesting
SET jsondoc = jsonb_set(
                 jsondoc,
                 '{PhoneNumber}',
                 jsondoc -> 'PhoneNumber' || JSONB '[6789]'
              );
WHERE id=1;

推荐阅读