通过使用 Peewee ORM,可以定义一个模型,该模型将创建一个带有单列或多列索引的表。
根据 Field 属性定义,将唯一约束设置为 True 将在映射字段上创建索引。同样,将 index=True 参数传递给字段构造函数 也会在指定字段上创建索引。
如下所示,我们在 MyUser
模型中有两个字段,username
字段的 unique
参数设置为 True 和 email 字段的index=True。
class MyUser(Model):
username = CharField(unique=True)
email = CharField(index=True)
class Meta:
database=db
db_table='MyUser'
SQLiteStudio 图形用户界面 (GUI) 显示创建的索引如下 –
为了定义多列索引,我们需要在模型类定义中的 Meta 类中添加索引属性。它是一个 2-item 元组,一个元组用于索引定义。在每个 2-element 元组中,一个是字段名称的元组,另一个设置为 True 以使其唯一,否则为 False。
我们使用 两列唯一索引 定义 MyUser 模型,如下所示 –
class MyUser (Model):
name=TextField()
city=TextField()
age=IntegerField()
class Meta:
database=db
db_table='MyUser'
indexes=(
(('name', 'city'), True),
)
SQLiteStudio 显示索引定义如下图所示:
索引也可以在模型定义之外构建。
也可以通过手动提供 SQL 辅助语句作为add_index()方法的参数来创建索引。
MyUser.add_index(SQL('CREATE INDEX idx on MyUser(name);'))
使用 SQLite 时特别需要上述方法。对于 MySQL 和 PostgreSQL,我们可以获取 Index 对象并通过add_index()方法使用它。
ind=MyUser.index(MyUser.name)
MyUser.add_index(ind)
酷客网相关文章:
评论前必须登录!
注册