我使用优秀的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