Peewee - 更新現有記錄



可以透過呼叫模型例項上的 **save()** 方法以及 **update()** 類方法來修改現有資料。

以下示例在 **get()** 方法的幫助下從 User 表中獲取一行,並透過更改年齡欄位的值對其進行更新。

row=User.get(User.name=="Amar")
print ("name: {} age: {}".format(row.name, row.age))
row.age=25
row.save()

Method 類的 **update()** 方法生成 UPDATE 查詢。然後呼叫查詢物件的 execute() 方法。

以下示例使用 update() 方法更改年齡大於 20 的行的年齡列。

qry=User.update({User.age:25}).where(User.age>20)
print (qry.sql())
qry.execute()

由 update() 方法呈現的 SQL 查詢如下 −

('UPDATE "User" SET "age" = ? WHERE ("User"."age" > ?)', [25, 20])

Peewee 還有一個 **bulk_update()** 方法,用於幫助在單個查詢操作中更新多個模型例項。該方法需要更新的模型物件和要更新的欄位列表。

以下示例透過新值更新指定行的年齡欄位。

rows=User.select()
rows[0].age=25
rows[2].age=23
User.bulk_update([rows[0], rows[2]], fields=[User.age])
廣告