【问题标题】:Cannot \copy into postgresql table which has default clock_timestamp无法 \copy 到具有默认时钟时间戳的 postgresql 表中
【发布时间】:2016-10-07 12:52:22
【问题描述】:

我的表有一个使用 DEFAULT CLOCK_TIMESTAMP() 称为“created”的 NOT NULL 列。我有意从中复制的 CSV 文件没有名为“created”的列,因为我希望数据库为其使用默认值。我的复制命令是:

\copy table_name from '/local/path/to/file.csv' delimiter ',' CSV HEADER

我收到的错误是:

missing data for column "created_"

PostgreSQL 文档说:“如果表中有任何列不在列列表中,COPY FROM 将为这些列插入默认值。”

感谢您的帮助

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    线索在“列列表中没有的”中。

    您需要为此指定“列列表”,并省略具有默认值的列:

    \copy table_name (column1, column2, ...) from '/local/path/to/file.csv' delimiter ',' CSV HEADER
    

    【讨论】:

    • 成功了——我认为 HEADER 关键字只是告诉它使用 CSV 标题列作为我的列表。也许我会发送一份文件澄清请求......
    猜你喜欢
    • 2018-01-13
    • 1970-01-01
    • 2016-04-15
    • 2018-10-13
    • 2021-12-14
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多