我将.csv中的数据复制到我的postgres表中。我的命令如下:
COPY w_spare_part_cze (country, manufacturer, model, submodel, guid, model_options, oen, price, description) FROM '/tmp/SpareParts.csv' WITH CSV HEADER DELIMITER ',' QUOTE '"';
这看起来很酷,但是在我的数据库中我有列country
,但在我的.csv
我根本没有这个列(只有制造商,模型,子模型,guid,model_options等等。 。)
只要此IMPORT的所有值都具有相同的国家/地区值。有没有办法如何在没有本地上传到另一个表的情况下设置IT,添加具有默认值的新列,转储并再次上传到真实表。
感谢您的任何建议
答案 0 :(得分:1)
从country
中的字段列表中删除copy
:
COPY w_spare_part_cze (manufacturer, model, submodel, guid, model_options, oen, price, description)
FROM '/tmp/SpareParts.csv' WITH CSV HEADER DELIMITER ',' QUOTE '"';
并用所需的值填充该列:
UPDATE w_spare_part_cze
SET country = 'Japan';
如果文件包含null
为country
,则临时删除非空约束:
ALTER TABLE w_spare_part_cze ALTER country DROP NOT NULL;
COPY w_spare_part_cze (country, manufacturer, model, submodel, guid, model_options, oen, price, description)
FROM '/tmp/SpareParts.csv' WITH CSV HEADER DELIMITER ',' QUOTE '"';
UPDATE w_spare_part_cze
SET country = 'Japan';
ALTER TABLE w_spare_part_cze ALTER country SET NOT NULL;