postgresql - PostgreSQL 错误使用 pgAdmin4 上传 csv 文件
问题描述
我是全新的PostgreSQL
。
我创建了一个名为 的测试表Activity
,其列结构如下所示:
id Color Dimension Style COUNT SUM Date
我将列定义如下:
id
: bigint,主键,不为空
Color
: 字符变化 255
Dimension
: 字符变化 255
Style
: 字符变化 255
COUNT
: 大整数
SUM
: 双精度
DATE
: 日期
我csv file
的数据如下所示:
Color Dimension Style COUNT SUM Date
Blue Circle Large 4 800 6/19/2020
Blue Circle Small 5 1500 6/19/2020
Blue Square Medium 1 15 6/19/2020
在pgAdmin4
中,我执行以下步骤:
- 在左侧窗格的树中,我右键单击活动表并选择“导入/导出”
- 在结果对话框中,我将“导出”标志切换为“导入”
- 浏览文件名并选择它
- 选择“csv”格式
- 选择标题 = 是
单击“确定”后,我看到以下错误消息:
ERROR: invalid input syntax for type bigint: "Blue"
CONTEXT: COPY Trades, line 2, column id: "Blue"
csv 文件不包含id
列(这是主键),因为我的理解是 PostgreSQL 会根据我导入的记录数自动插入和增加该数字。
有谁知道为什么我会收到上面的错误消息?
提前致谢!
解决方案
您收到错误是因为您的 CSV 文件比表格少一列(id)。该COPY
命令(由 Import 使用)不知道该字段具有默认值。在 Import 对话框中应该有一个名为 Columns 的选项卡,允许您选择 CSV 中的那些列。
推荐阅读
- jquery - jQuery在滚动之前获取滚动位置以在全屏时使用scrollTop()位置临时禁用滚动
- django - 在 Django 中,如何重命名用户模型?
- r - 计算每行超过 60 的值的数量
- firebase - FIRESTORE :具有多个 where 子句的查询流
- json - Flutter/Dart Json 序列化
- javascript - 谷歌脚本/html试图在页面内显示页面
- reactjs - 在地图上查看城市名称
- node.js - 带有blob发送的Nodejs Expressjs中的CORS失败
- javascript - array.filter 似乎根本不起作用?
- terraform - parameters_content 值无法反序列化