【发布时间】:2015-10-16 19:30:59
【问题描述】:
这更像是一个概念性问题,因为我正在计划如何最好地实现我们的目标。
我有一个包含 5 列的 postgresql/postgis 表。我将每隔 10 分钟左右通过复制命令将数据从 csv 文件插入/追加到数据库中。可能会有一些重复的数据行,所以我想将数据从 csv 文件复制到 postgresql 表,但防止任何重复条目从 csv 文件进入表。共有三列,如果它们都相等,则表示该条目是重复的。它们是“纬度”、“经度”和“时间”。我应该从所有三列中创建一个复合键吗?如果我这样做,它会在尝试将 csv 文件复制到数据库时抛出错误吗?我将自动复制 csv 文件,因此我希望它继续复制不重复的文件的其余部分,而不是复制重复的文件。有没有办法做到这一点?
另外,我当然希望它以最有效的方式查找重复项。我不需要通过行上的时间戳查看整个表(这将是相当大的)重复...只是过去 20 分钟左右。我已经用时间列索引了数据库。
感谢您的帮助!
【问题讨论】:
标签: postgresql csv postgis