我想将实际系统从CSV文件切换到PostgreSQL 9.5数据库,转换为更高效的系统。
由于其良好的性能,我想使用COPY声明。问题是我需要填充一个不在CSV文件中的字段。
有没有办法让COPY语句为插入的所有行添加静态字段? 完美的解决方案看起来像这样:
COPY data(field1, field2, field3='Account-005')
FROM '/tmp/Account-005.csv'
WITH DELIMITER ',' CSV HEADER;
您是否知道如何在每一行填充该字段?
我的服务器正在运行node.js所以我愿意接受任何具有成本效益的解决方案,以便在复制之前使用节点完成文件。
答案 0 :(得分:0)
设置列的默认值:
alter table data
alter column field3 set default 'Account-005'
不要提及copy
命令:
COPY data(field1, field2) FROM...
答案 1 :(得分:0)
使用临时表导入。这允许您:
,然后将新记录插入实际表格。
LEFT OUTER JOIN
BTW可以自动执行上述操作:将文件名/文字作为参数放入函数(或准备语句)中。