首页 > 解决方案 > 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中,我执行以下步骤:

  1. 在左侧窗格的树中,我右键单击活动表并选择“导入/导出”
  2. 在结果对话框中,我将“导出”标志切换为“导入”
  3. 浏览文件名并选择它
  4. 选择“csv”格式
  5. 选择标题 = 是

单击“确定”后,我看到以下错误消息:

ERROR:  invalid input syntax for type bigint: "Blue"
CONTEXT:  COPY Trades, line 2, column id: "Blue"

csv 文件不包含id列(这是主键),因为我的理解是 PostgreSQL 会根据我导入的记录数自动插入和增加该数字。

有谁知道为什么我会收到上面的错误消息?

提前致谢!

标签: postgresql

解决方案


您收到错误是因为您的 CSV 文件比表格少一列(id)。该COPY命令(由 Import 使用)不知道该字段具有默认值。在 Import 对话框中应该有一个名为 Columns 的选项卡,允许您选择 CSV 中的那些列。


推荐阅读