在PostgreSQL 9.2.3中,我试图创建此简化表:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (user_id WITH =, startend WITH &&)
);
但是我得到这个错误:
ERROR: data type integer has no default operator class for access method "gist" HINT: You must specify an operator class for the index or define a default operator class for the data type.
在PostgreSQL的文档使用这个例子不为我工作:
CREATE TABLE room_reservation (
room text,
during tsrange,
EXCLUDE USING gist (room WITH =, during WITH &&)
);
同样的错误信息。
而这个对我也不起作用:
CREATE TABLE zoo (
cage INTEGER,
animal TEXT,
EXCLUDE USING gist (cage WITH =, animal WITH <>)
);
同样的错误信息。
我能够毫无问题地创建它:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (startend WITH &&)
);
和这个:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING btree (user_id WITH =)
);
我花了很多时间寻找有关弄清楚如何使它起作用或弄不明白为什么不起作用的提示。有任何想法吗?
9
+1看,人!就是这样做的。该问题具有所需的一切:RDBMS 和版本,示例代码,错误消息,问题的明确定义,链接,OP尝试过的内容的显示。作品。无噪音。这是第一次使用的用户!开头语 立即说服我仔细看一下。
—
Erwin Brandstetter