如何在 PostgreSQL 中仅从 CSV 导入特定列
How to import only specific columns from CSV in PostgreSQL
PostgreSQL 版本:9.6
我有一个 table xyz
,其中包含 a integer
、b integer
、c text
、d integer
列。
列 c
具有非空约束。
我的 CSV 文件如下所示:
foo.csv
1,4
2,5
3,7
如何通过导入上面的 CSV 来更新列 a
和 d
?
我尝试了 COPY xyz (a,d) FROM '/foo.csv' DELIMITER ',';
但它给了我一个错误
ERROR: null value in column "c" violates not-null constraint DETAIL: Failing row contains (1, null, null, 4).
通常,not null
列应该定义一个默认值。您可以为现有列定义默认值,例如
alter table xyz alter c set default '';
之后复制命令就成功了
PostgreSQL 版本:9.6
我有一个 table xyz
,其中包含 a integer
、b integer
、c text
、d integer
列。
列 c
具有非空约束。
我的 CSV 文件如下所示:
foo.csv
1,4
2,5
3,7
如何通过导入上面的 CSV 来更新列 a
和 d
?
我尝试了 COPY xyz (a,d) FROM '/foo.csv' DELIMITER ',';
但它给了我一个错误
ERROR: null value in column "c" violates not-null constraint DETAIL: Failing row contains (1, null, null, 4).
通常,not null
列应该定义一个默认值。您可以为现有列定义默认值,例如
alter table xyz alter c set default '';
之后复制命令就成功了