2014-01-31 80 views
1

我在创建我的表后使用PostgreSQL数据库,我必须使用CSV文件填充它们。但是,CSV文件已损坏,并且违反了主键规则,因此数据库发生错误,我无法填充表格。任何想法如何告诉数据库从CSV导入时忽略重复?编写脚本将其从CSV文件中删除是不可接受的。任何解决方法也是受欢迎的。谢谢! :)从CSV导入时忽略重复项

+0

你可以使用独特的源选择? –

回答

1

在postgreSQL上,duplicate rows are not permitted if they violate a unique constraint。 我认为你最好的选择是将你的CSV文件导入到没有约束的临时表中,从中删除重复的值,最后从这个临时表导入到你的最终表中。

+0

这是我的其他选择好的,我会那么做:)谢谢! –

+2

@AntonBelev要了解更多信息,请搜索“postgresql bulk upsert”。请参阅http://stackoverflow.com/questions/17267417/how-do-i-do-an-upsert-merge-insert-on-duplicate-update-in-postgresql,http://stackoverflow.com/questions/7019831/bulk-batch-update-upsert -in-postgresql –

+0

@CraigRinger很棒的链接谢谢! –