PostgreSQL版本:9.6
我有一个具有列xyz
,a integer
,b integer
,c text
的表d integer
。
c
列具有非null约束。
我有一个看起来像这样的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 '';
此后,复制命令将成功。