【发布时间】:2021-03-15 15:36:39
【问题描述】:
我有下表:
persons(id,id_tech,name,nationality,id_list)
还有一个 CSV 文件,其中包含列 id_tech、名称和国籍的数据。
像这样导入数据是有效的:
\copy persons(id_tech,name,nationality) FROM '/path/to/file.csv' DELIMITER ',' CSV
id_list 值不在 CSV 文件中,因为该文件必须在许多服务器上导入,而该 id 的值可能不同。
有没有办法在为特定列提供附加值的同时导入 CSV 文件?我在文档中找不到任何相关内容。
编辑--
请注意,我的所有命令都将在 C++(多平台)中使用 pqxx 执行。我试图避免编辑文件,因为它的大小。
编辑 2 --
我正在考虑以下方法:
- 为我需要的字段创建一个具有正确默认值的临时表
- 将文件导入此临时表
- 将 tmp 复制到最终表格
- 删除临时表
但我不确定性能。最大的导入可能接近 500K 行。
谢谢
【问题讨论】:
标签: postgresql csv libpqxx postgresql-copy