2016-06-01 12 views
0

Ich möchte Objekte aus einer Liste von Diktaten mit sqlalchemy erstellen oder aktualisieren.sqlalchemy: Masseneinfügung oder Aktualisierung von Zuordnungen

tun so etwas wie: session.bulk_update_mappings(MyObject, list_of_dicts)

Und das Problem ist, dass ich Integrität Störung erhalte, für die Fälle, wenn ich dort einige von den list_of_dicts sind, sind nicht in der Datenbank.

So bin ich auf der Suche nach einer Möglichkeit, bulk_update_mappings und bulk_insert_mappings für eine Reihe von Objekten zu kombinieren.

+0

Welches Back-End? MySQL? PostgreSQL? – univerio

+0

sqlite3-Backend –

Antwort

0

Dies ist DB-spezifisch. Werfen Sie einen Blick auf diese Antwort: SQLite UPSERT - ON DUPLICATE KEY UPDATE

In MySQL wir dieses Problem lösen, indem Sie

INSERT ... ON DUPLICATE KEY UPDATE ... 

sieht aus wie Sie das gleiche Ergebnis in SQLite unter Verwendung

INSERT OR IGNORE INTO ... UPDATE ... 

stellen Sie sicher erreichen können, müssen Sie ein richtiger primärer (oder eindeutiger) Schlüssel, der so definiert ist, dass die DB die Duplikate identifizieren kann.

Verwandte Themen