⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
CREATE INDEX 语句

CREATE INDEX

CREATE INDEX 语句用于在指定表的指定列上构建索引。

示例

在表 films 的列 id 上创建一个唯一索引 films_id_idx

CREATE UNIQUE INDEX films_id_idx ON films (id);

在表 films 的列 revenue 上创建一个允许重复值的索引 s_idx

CREATE INDEX s_idx ON films (revenue);

如果索引不存在则创建

CREATE INDEX IF NOT EXISTS s_idx ON films (revenue);

CREATE INDEX IF NOT EXISTS 语句目前不支持“提前退出”。相反,它会尝试创建索引,并仅在将其提交到存储之前检查其是否存在。因此,与那些提前终止的 IF NOT EXISTS 语句相比,它的运行时间可能会更长。

genreyear 列上创建复合索引 gy_idx

CREATE INDEX gy_idx ON films (genre, year);

在表 integers 中列 jk 之和的表达式上创建索引 i_index

CREATE INDEX i_index ON integers ((j + k));

参数

名称 描述
UNIQUE 使系统在创建索引时(如果数据已存在)以及每次添加数据时检查表中的重复值。尝试插入或更新会导致重复条目的数据将引发错误。
name 要创建的索引名称。
table 要索引的表名称。
column(列) 要索引的列名称。
expression(表达式) 基于表中一列或多列的表达式。正如语法所示,表达式通常必须用括号括起来。但是,如果表达式是函数调用的形式,则可以省略括号。
index type(索引类型) 指定的索引类型,请参阅 索引 (Indexes)。可选。
option(选项) 布尔真值形式的索引选项(例如 is_cool)或键值对(例如 my_option = 2)。可选。

语法

DROP INDEX

DROP INDEX 从数据库系统中删除现有的索引。

示例

删除索引 title_idx

DROP INDEX title_idx;

参数

名称 描述
IF EXISTS 如果索引不存在,则不抛出错误。
name 要删除的索引名称。

语法

限制

CREATE INDEX 子句不支持 OR REPLACE 修饰符。

© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南