首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PostgreSQL GIN pg_trgm默认运算符类

PostgreSQL GIN pg_trgm默认运算符类
EN

Database Administration用户
提问于 2016-08-02 08:34:11
回答 1查看 18.9K关注 0票数 6

我在pg_trgm模块中使用GIN索引来索引varchar字段。因此,要定义索引,我必须编写如下内容:

代码语言:javascript
运行
复制
CREATE INDEX gin_field_idx ON table_name USING gin (field gin_trgm_ops);

如果我排除操作符类(git_trgm_ops)并编写:

代码语言:javascript
运行
复制
CREATE INDEX gin_field_idx ON table_name USING gin (field);

PostgreSQL将引发一个错误:

错误:对于访问方法"gin“提示,数据类型字符变量没有默认操作符类:必须为索引指定操作符类,或者为数据类型定义默认运算符类。

如何从模块中定义默认运算符方法?

不起作用。它描述了如何从扩展运算符和函数定义新的运算符类。但是我必须从模块中定义默认的运算符类。

如有任何帮助,将不胜感激:)。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2016-08-02 10:46:09

您可以更新pg_opclass表并设置默认值。

代码语言:javascript
运行
复制
update pg_opclass set opcdefault = true where opcname='gin_trgm_ops'

默认情况下,pg_trgm不会这样做,因为您可能需要/希望使用不同的GIN默认值。

代码语言:javascript
运行
复制
select * from pg_opclass where opcname = 'gin_trgm_ops';

无法创建索引:

代码语言:javascript
运行
复制
create index ON table USING gin (field); -- it will use the new default
票数 6
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/145586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档