- Peewee 教程
- Peewee - 首页
- Peewee - 概述
- Peewee - 数据库类
- Peewee - 模型
- Peewee - 字段类
- Peewee - 插入新记录
- Peewee - 选择记录
- Peewee - 过滤器
- Peewee - 主键和复合键
- Peewee - 更新现有记录
- Peewee - 删除记录
- Peewee - 创建索引
- Peewee - 约束
- Peewee - 使用 MySQL
- Peewee - 使用 PostgreSQL
- Peewee - 动态定义数据库
- Peewee - 连接管理
- Peewee - 关系和连接
- Peewee - 子查询
- Peewee - 排序
- Peewee - 计数和聚合
- Peewee - SQL 函数
- Peewee - 获取行元组/字典
- Peewee - 用户自定义操作符
- Peewee - 原子事务
- Peewee - 数据库错误
- Peewee - 查询构建器
- Peewee - 与 Web 框架集成
- Peewee - SQLite 扩展
- Peewee - PostgreSQL 和 MySQL 扩展
- Peewee - 使用 CockroachDB
- Peewee 有用资源
- Peewee - 快速指南
- Peewee - 有用资源
- Peewee - 讨论
Peewee - 创建索引
通过使用 Peewee ORM,可以定义一个模型,该模型将创建一个在单个列以及多个列上创建索引的表。
根据字段属性定义,将唯一约束设置为 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 类中添加 indexes 属性。它是一个 2 元素元组的元组,每个元组对应一个索引定义。在每个 2 元素元组中,第一部分是字段名称的元组,第二部分设置为 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)
广告