私は約100000レコードで更新しているpostgresql dbを持っています。session.merge() を使用して各レコードを挿入/更新し、1000 レコードごとにコミットします。
i=0
for record in records:
i+=1
session.merge(record)
if i%1000 == 0:
session.commit()
このコードは正常に動作します。私のデータベースには UNIQUE フィールドを持つテーブルがあり、それに挿入する重複したレコードがいくつかあります。これが発生すると、フィールドが一意ではないことを示すエラーがスローされます。一度に 1000 レコードを挿入しているので、ロールバックではこれらのレコードをスキップできません。重複レコードの session.merge() をスキップする方法はありますか (もちろん、すべてのレコードを解析して重複レコードを見つける以外に)?