无法将数据复制到具有默认 clock_timestamp 的 PostgreSQL 表中。

8

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

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

我收到的错误信息是:
missing data for column "created_"

PostgreSQL文档指出:“如果表中有任何不在列列表中的列,COPY FROM将插入这些列的默认值。”
谢谢您的帮助。
1个回答

9

关键在于“不在列清单中的”。

您需要为此指定“列清单”,并省略默认值的那个列:

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

1
成功了 - 我原以为 HEADER 关键字只是告诉它使用 CSV 标头列作为我的列表。也许我会发送一份文档澄清请求... - SplendidSplinter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接