【发布时间】:2014-01-18 01:16:23
【问题描述】:
我知道这样做:
COPY test FROM '/path/to/csv/example.txt' DELIMITER ',' CSV;
我可以将csv数据导入postgresql。
但是,我没有静态 csv 文件。我的 csv 文件每天会下载几次,其中包含以前导入数据库的数据。因此,为了获得一致的数据库,我必须leave out 这个旧数据。
实现这一点的最佳案例想法类似于上面。但是,最坏的情况是 java 程序使用 csv 文件手动检查 db 的每个条目。对实施有何建议?
非常感谢您的回答!
【问题讨论】:
-
您可以
COPY将完整文件写入临时表,然后INSERT ... SELECT ...仅将新记录写入实际表。 -
听起来您正在寻找批量数据合并,即复制忽略重复项,或复制 upsert。如果是这样,请参阅stackoverflow.com/q/13947327/398670、stackoverflow.com/q/17267417/398670
标签: sql postgresql csv