繁体   English   中英

Peewee 无外键插入

[英]Peewee inserting without foreign keys

所以我使用peewee在python中创建数据库。

class BaseModel(Model):
    class Meta:
        database = db

class Phone(BaseModel):
    '''Phone database model.'''
     model = CharField(max_length=15, unique=True, primary_key=True)

class Imei(BaseModel):
    '''Imei database model.'''
    imei = CharField(max_length=15, unique=True, primary_key=True)
    model = ForeignKeyField(Phone, to_field="model", related_name="imei's from model")
    registered = BooleanField(default=False)
    timestamp = DateTimeField(default=datetime.datetime(2014, 1, 1, 0, 0))
    email = CharField(max_length=50, null=True)

我想在这里实现的是,每当我插入“Imei”表时,如果模型未列在“Phone”表中,则不会插入。

我使用外键做到了这一点,但问题是当我在 imei 表上插入时,电话表是空的,它插入没有问题。

我该如何解决这个问题?

我同意调查数据库。 如果您使用 SQLite,请确保PRAGMA foreign_keys=ON以强制执行它们。

外键是正确的方法(就像你做的那样),但表必须是 InnoDB。 如果表是 MyISAM,则没有任何外键限制,因为 MyISAM 不使用外键。 那么,您的表是 InnoDB 吗?

(我想发表评论而不是发布答案,但我的声誉太低而无法做到......)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM