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).
答案 0 :(得分:1)
通常,not null
列应定义一个默认值。您可以为现有列定义默认值,例如
alter table xyz alter c set default '';
之后,复制命令将成功。