ใน 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 =)
);
ฉันใช้เวลาสักครู่เพื่อค้นหาคำแนะนำเกี่ยวกับการหาวิธีทำงานนี้หรือหาสาเหตุที่มันไม่ทำงาน ความคิดใด ๆ