我使用優秀的PeeWee
模塊將一些Id和主機名保存到MySQL
表中。 我想'clientId'(這是一個IntegerField)是主鍵,但我似乎需要使用save(force_insert=True)
來使它插入 - 否則我什麼也沒有添加到表中。我沒有收到任何錯誤消息。 我認爲這只是在primary_key字段不是Integer時才需要的。 我指的是文檔 - (https://peewee.readthedocs.org/en/2.0.2/peewee/fields.html#non-integer-primary-keys)PeeWee Integer主鍵需要force_insert = True
我的模型: -
class BaseModel(peewee.Model):
class Meta:
database = db
class Client(BaseModel):
clientId = peewee.IntegerField(primary_key=True)
clientName = peewee.TextField()
isDeletedClient = peewee.BooleanField(default=False)
#Create object to insert using collected data...
clientEntry = Client(clientId=clientId,
clientName=clientName,
isDeletedClient=isDeletedClient)
#clientEntry.save() # <-- Nothing gets inserted
clientEntry.save(force_insert=True) # <-- Works.
*的方式peewee決定是否對一個UPDATE歸結爲檢查主鍵值是否爲無做一個INSERT。如果爲None,它將執行插入操作,否則它會對現有值進行更新。*因此,您的'clientId'是否等於'None'? –
嗨,傑夫。無論文檔如何,無論主鍵是否存在,都將發佈INSERT。我認爲你試圖用現有的主鍵插入記錄。你可以嘗試使用自動遞增的主鍵http://docs.peewee-orm.com/en/latest/peewee/api.html#PrimaryKeyField – discort