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.
How to update multiple records using peewee
Asked Answered
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_many –
Allelomorph
ORMs usually dose not support bulk update and you have to use custom SQL, you can see samples in this link (db.excute_sql)
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
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
method –
Allelomorph ORMs usually dose not support bulk update and you have to use custom SQL, you can see samples in this link (db.excute_sql)
© 2022 - 2024 — McMap. All rights reserved.