1
Ich habe eine Tabelle mit Benutzerdaten, und ich möchte Informationen für viele Benutzer mit einer Liste von Wörterbüchern aktualisieren. Im Moment benutze ich eine for-Schleife, um eine Update-Anweisung ein Wörterbuch nach dem anderen zu senden, aber es ist langsam und ich hoffe, dass es eine Bulk-Methode dafür gibt.SQLAlchemy - Tabelle mit der Liste der Wörterbücher aktualisieren
user_data = [{'user_id' : '12345', 'user_name' : 'John'}, {'user_id' : '11223', 'user_name' : 'Andy'}]
connection = engine.connect()
metadata = MetaData()
for row in user_data:
stmt = update(users_table).where(users_table.columns.user_id == row['user_id'])
results = connection.execute(stmt, row)
Vielen Dank im Voraus!
Hoffe, das wird helfen! – Gigapalmer
Danke! In diesem Beispiel, sollte ich "id" in "user_id" und "_id" zu "user_id" in der WHERE-Anweisung ändern? So wäre es: 'where (users_table.c.user_id == bindparam ('user_id')). Andernfalls bekomme ich:' StatementError: (sqlalchemy.exc.InvalidRequestError) Ein Wert ist erforderlich für Bind Parameter '_id' – Venetian
@ Venezianisch Je nachdem, welche Datenbank Sie verwenden, kann dies die Leistung nicht drastisch verbessern. Sehen Sie sich zum Beispiel [diese Frage] an (http://stackoverflow.com/questions/8134602/psycopg2-insert-multiple-rows-with-one-query) (PostgreSQL). – univerio