peewee 實現 有則更新,無則插入.

背景:想用peewee實現 mysql數據庫 有則更新,無則插入.幾番查找,發現在官方文檔中有.下圖:

在這裏插入圖片描述

在本地的數據庫測試了,以下是測試語句及結果:

表結構
class Practice(Model):
    id = AutoField(primary_key=True)
    name = CharField(max_length=45)
    sex = CharField(max_length=255)

    class Meta:
        database = database

在這裏插入圖片描述

測試代碼
def upsert_func():
    rowid = (Practice
             .insert(name='AKA', sex='male', id=1)
             .on_conflict(
              preserve=[Practice.sex, Practice.name])
             .execute())
    print(rowid)
運行代碼後結果:

在這裏插入圖片描述

接着,我們想修改id=1的,把它名字改爲 Hello.
def upsert_func():
    rowid = (Practice
             .insert(name='Hello', sex='male', id=1)
             .on_conflict(
              preserve=[Practice.sex, Practice.name])
             .execute())
    print(rowid)
運行代碼結果:

在這裏插入圖片描述

從中我們可以看到這個代碼確實實現有則更新,無則插入的操作,趕緊來試試看吧.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章