我有一些带有 json 列的表,并且想在这些列上建立索引。但是,我得到了一个默认的运算符类(http://www.postgresql.org/docs/9.2/static/sql-createopclass.html)。有人已经这样做了还是给了我一个替代方案?
要重现该问题,请尝试:
>> create table foo (json json, id int);
CREATE TABLE
>> create index on foo (id);
CREATE INDEX
>> create index on foo (json);
ERROR: data type json has no default operator class for access method "btree"
HINT: You must specify an operator class for the index or define a default operator class for the data type.
这同样适用于gist
或gil
索引。
有趣的是,当我尝试以下操作时,我没有收到错误:
>> create type "nested" as (json json, extra text);
CREATE TYPE
>> create table bar (id int, json nested);
CREATE TABLE
>> create index on bar (json);
CREATE INDEX
那是因为没有为组件创建索引吗?
好的,主要问题是默认运算符。感谢您提供任何帮助或共享经验。谢谢。