我想将实际系统从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所以我愿意接受任何具有成本效益的解决方案,以便在复制它之前使用节点完成文件 .
2 回答
使用 temp table 导入 . 这允许您:
添加/删除/更新列
添加额外的文字数据
删除或忽略记录(例如重复)
,在将新记录插入实际表之前 .
BTW可以自动执行上述操作:将文件名/文字作为参数放入函数(或准备语句)中 .
设置列的默认值:
不要提及
copy
命令: