sql - 在postgresql中将值插入到大整数范围内的列中
问题描述
我正在尝试用特定范围之间的一些数字填充列的值。
我的专栏的数据类型是 bigint。不是 bigint 数组。
我正在尝试在下面使用代码;
INSERT INTO public.usertransactions (bank_order_code) VALUES
( (SELECT array_agg(g.i) :: bigint
FROM generate_series(8000,8069) as g(i)));
在此之后我收到此错误:
ERROR: cannot cast type integer[] to bigint
LINE 2: ( (SELECT array_agg(g.i) :: bigint
^
SQL state: 42846
Character: 88
我该如何解决。
解决方案
您正在尝试将 的结果array_agg
(一个数组)插入到整数列中。
因此,由于您的表中没有bigint
数组,因此必须假设您只想在 8000 和 8069 之间创建 70 条记录,因此不需要array_agg
,例如
INSERT INTO usertransactions (bank_order_code)
VALUES (generate_series(8000,8069));
如果您想获得所有生成值的总和,只需使用以下sum()
函数
INSERT INTO usertransactions (bank_order_code)
SELECT sum(i) FROM generate_series(8000,8069) AS g(i);
演示:db<>fiddle
推荐阅读
- angular - Angular:strictTemplates 和 Virtual ScrollViewPort
- postgresql - AWS RDS PostgreSQL 的二进制备份
- firebase - Firestore:同时删除文档和集合
- javascript - Javascript计数出现次数
- python - 使用 Selenium 时,我无法在 Google Meet 中单击/查找元素
- c# - C#统一重复方法不同的参数类型
- sqlite - SQLite:如何从表 1 的列中复制数据并根据特定行中数据的 ID 将数据粘贴到表 2 的列中?
- java - 安装在特定操作系统上的 JRE 是否定制为仅在安装它的操作系统上运行?
- r - 三、data.table合并行为不一致
- html - 如何从客户端上传图片?