Peewee约束

约束是对可以放入字段的可能值施加的限制。一种这样的约束是主键。当 Field 定义中指定primary_key=True 时,每一行只能存储唯一值——该字段的相同值不能在另一行中重复。

如果字段不是主键,仍然可以限制它在表中存储唯一值。字段构造函数也有约束参数。

如下示例对 age 字段应用CHECK约束。

class MyUser (Model):
   name=TextField()
   city=TextField()
   age=IntegerField(constraints=[Check('name<10')])
   class Meta:
      database=db
      db_table='MyUser'

生成以下数据定义语言(DDL)表达式 –

CREATE TABLE MyUser (
   id INTEGER NOT NULL
   PRIMARY KEY,
   name TEXT NOT NULL,
   city TEXT NOT NULL,
   age INTEGER NOT NULL
   CHECK (name < 10)
);

因此,如果年龄<10 的新行将导致错误。

MyUser.create(name="Rajesh", city="Mumbai",age=9)
peewee.IntegrityError: CHECK constraint failed: MyUser

在字段定义中,我们也可以使用DEFAULT约束,如以下 city 字段的定义。

city=TextField(constraints=[SQL("DEFAULT 'Mumbai'")])

因此,可以使用或不使用 city 的显式值来构建模型对象。如果不使用,城市字段将填充默认值 - Mumbai.

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!