How to update multiple records using peewee
Asked Answered
A

2

5

I'm using Peewee with Postgres database. I want to know how to update multiple records in a tabel at once?
We can perform this update in SQL using these commands, and I'm looking for a Peewee equivalent approach.

Allelomorph answered 7/12, 2016 at 22:16 Comment(2)
Have you tried Model.update() method?Praxis
Yes, but I'm wondering about performance. I've recently started learning and I red here that multiple times inserting a single item is wrong and I couldn't find a method similar to insert_manyAllelomorph
S
-6

ORMs usually dose not support bulk update and you have to use custom SQL, you can see samples in this link (db.excute_sql)

Schistosome answered 8/12, 2016 at 14:49 Comment(0)
R
0

Yes, you can use the insert_many() function:

Insert multiple rows at once. The rows parameter must be an iterable that yields dictionaries. As with insert(), fields that are not specified in the dictionary will use their default value, if one exists.

Example:

usernames = ['charlie', 'huey', 'peewee', 'mickey']
row_dicts = ({'username': username} for username in usernames)

# Insert 4 new rows.
User.insert_many(row_dicts).execute()

More details at: http://docs.peewee-orm.com/en/latest/peewee/api.html#Model.insert_many

Redskin answered 8/12, 2016 at 13:53 Comment(3)
But this is inserting new items, I'd like to update existing records.Allelomorph
@alihaghighatkhah Then use a single .update() as Gordian mentioned. It runs as a single transaction, not several separate update operations.Redskin
Thank you. yes eventually I changed my pipeline to use update methodAllelomorph
S
-6

ORMs usually dose not support bulk update and you have to use custom SQL, you can see samples in this link (db.excute_sql)

Schistosome answered 8/12, 2016 at 14:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.