2014-01-16 40 views
4

我想知道是否有可能?如果由於某種原因導致行不能導入 前。 dublicate主鍵,錯誤的輸入類型等等可以被忽略並移動到下一行?忽略行,如果在CSV導入重複

我得到這個

ERROR: duplicate key value violates unique constraint "team_pkey" 
DETAIL: Key (team)=(DEN) already exists. 
CONTEXT: COPY team, line 23: "DEN,Denver,Rockets,A" 

有很多文件中的錯誤和它的一個相當大的一個,所以是有可能忽略不能被插入的行?使用不受約束的臨時表和select distinct on uniquefield到目標表中短期 -

預先感謝您

+0

一個可能的方法可以在這裏找到http://stackoverflow.com/questions/13947327/to-ignore-duplicate-keys-during-copy-from-in-postgresql - 會在你的情況下可用嗎? – fvu

+0

這將解決重複的問題,但我如何解決無效的類型? – LefterisL

+0

[postgresql:\ copy方法輸入有效的條目和丟棄例外]的可能的重複(http://stackoverflow.com/questions/20169372/postgresql-copy-method-enter-valid-entries-and-iscards-exceptions) –

回答

2

,處理重複的關鍵問題To ignore duplicate keys during 'copy from' in postgresql描述了一種解決方案。

另一種方式將涉及使用pgLoader。不幸的是,這些文檔似乎已經從網站上消失了,但有幾篇有關the author's site的教程文章。它具有豐富的功能,可以幫助您讀取有問題的數據,並可以執行諸如在單獨的文件中存儲被拒絕的行,轉換字段等。

某些事情可能不是很明顯:pgLoader版本2是用Python編寫的,版本3是用Lisp編寫的。兩者都可以從GitHub頁面獲得。