2011-04-29 191 views
1

我有CSV文件,這是很大(幾百MB),我試圖導入到Postgres表中,當出現問題時,出現一些主鍵違例(CSV文件中的重複記錄)PostgreSQL COPY FROM命令幫助

如果是我可以手動過濾掉這些記錄,但是這些文件是由每小時生成一次這樣的數據的程序生成的。我的腳本必須自動將其導入數據庫。

我的問題是:有沒有一些出路,我可以在COPY命令或Postgres裏設置一個標誌,以便它可以跳過重複記錄,並繼續導入文件表?

回答

3

我想到的是兩種方法可以解決這個:

  1. 使用一種實用工具,可以幫助在複製過程中創建重複行的「異常報告」,such as this one
  2. 通過將數據加載到一個臨時表第一,按摩它的副本(可能與你的目標表的聯接和標記在臨時與DUP標誌所有現有的)改變你的工作流,然後只導入缺失的記錄,發送哄到異常表。

我個人更喜歡第二種方法,但這是您的案例中特定工作流程的問題。

+1

我去的第二溶液,以及(或使用不同的工具來加載數據) – 2011-04-29 13:53:45

+0

1。在這種情況下我使用臨時表。 – 2011-04-29 16:08:39

+0

我會去 – CodeWrite 2011-05-02 07:57:10