在python中,我使用importmany來填充SQLITE數據庫,所以我可以一次導入數以萬計的數據行。我的數據被包含爲元組列表。我有我的數據庫設置與我想要他們的主鍵。在IntegrityError後繼續加載
我遇到的問題是主鍵錯誤會引發IntegrityError。如果我處理異常,我的腳本將在主鍵衝突處停止導入。
嘗試:
try:
self.curs.executemany("INSERT into towers values (NULL,?,?,?,?)",self.insertList)
except IntegrityError:
print "Primary key error"
conn.commit()
所以我的問題是,在使用Python importmany可我:
1.捕獲違反主鍵的值是多少?
2.在出現主鍵錯誤後繼續加載數據。
我得到爲什麼它不會繼續加載,因爲在將異常數據提交到數據庫之後。但是我不知道如何繼續我離開的地方。
Unforutnley我無法複製和粘貼此網絡上的所有代碼,任何幫助將不勝感激。現在我有沒有的PK設定爲周圍的工作......
據我所知,存在'executemany'是因爲它比python迭代的'execute'命令提供了顯着的速度提升。因此,您的解決方案雖然可行,但會顯着降低巨大的數據導入速度。一種解決方案是跟蹤已經添加到python集合中的主鍵,並在將其提供給遊標之前提前過濾insertList。 – 2012-07-15 22:08:59
@PeterMcMahan好的我同意。這不是有效的代碼。它只能像你說的那樣「有效」。 – jheyse 2012-07-16 22:26:00