↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.1
历史版本。 PostgreSQL 7.1 已结束支持。 请参阅 当前版本手册.

7.5. 函数索引 #

函数索引定义在一个函数应用于单个表的一列或多列所得的结果上。函数索引可用于基于函数调用的结果快速访问数据。

例如,进行大小写不敏感比较的一种常见方式,是使用lower:

SELECT * FROM test1 WHERE lower(col1) = 'value';

为了让该查询能够使用索引,索引必须定义在lower(column)操作的结果上:

CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));

索引定义中的函数可以接受多个参数,但这些参数必须是表的列,而不能是常量。函数索引始终是单列的(即函数的结果),即使函数使用了多个输入字段;不存在包含函数调用的多列索引。

提示

上一段中提到的限制很容易绕过:定义自定义函数用在索引定义中,让它在内部调用所需的函数即可。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.