postgresql - 在postgres中将整数附加到整数数组
问题描述
我正在尝试在 postgres 表中的现有整数数组中添加一个新的整数值。我在这里使用 array_append 方法,但出现“无法将类型 jsonb 转换为整数 []”错误。我的更新查询如下。
注意-我只是将它用于学习目的,所以我故意将电话号码保存为整数。
update querytesting set jsondoc=jsondoc||jsonb_build_object(jsondoc->'PhoneNumber',array_append(((jsondoc->'PhoneNumber')::int[]),'6789')) where id=1;
解决方案
您必须提取数组,附加新数字,使用新数组创建一个新 JSON 并存储它。如果您将数据存储在规范化数据模型而不是 JSON 中,那么这是一个乏味且低效的过程。
UPDATE querytesting
SET jsondoc = jsonb_set(
jsondoc,
'{PhoneNumber}',
jsondoc -> 'PhoneNumber' || JSONB '[6789]'
);
WHERE id=1;
推荐阅读
- swift - 为什么我不能在 swift 的 for 循环中观看多个文件?
- cuda - 推力::device_vector.pushback() 会导致调用 memcpy 吗?
- jenkins - Jenkins 声明性管道找不到一些脚本
- powershell - VS 2015 MSDeployPublish 未执行
- python - 如何在使用 python 绘制 netCDF 文件中的任何变量之前网格化网格
- java - 错误注入:org.jboss.as.plugin.deployment.Deploy
- ios - 字典的客户端过滤以获得唯一值
- php - CSV 数据到 array_map 和 str_getcsv 使用分隔符
- python - 为 os.environ 引发 EnvironmentError 是否合适?
- java - Android 架构蓝图“todo‑mvp‑dagger”,@Provides for TasksRepository 在哪里?