Trong PostgreSQL 9.2.3, tôi đang cố gắng tạo bảng đơn giản hóa này:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (user_id WITH =, startend WITH &&)
);
Nhưng tôi nhận được lỗi này:
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.
Các tài liệu PostgreSQL sử dụng ví dụ này không phù hợp với tôi:
CREATE TABLE room_reservation (
room text,
during tsrange,
EXCLUDE USING gist (room WITH =, during WITH &&)
);
Thông báo lỗi tương tự.
Và cái này , nó cũng không hoạt động với tôi:
CREATE TABLE zoo (
cage INTEGER,
animal TEXT,
EXCLUDE USING gist (cage WITH =, animal WITH <>)
);
Thông báo lỗi tương tự.
Tôi có thể tạo cái này mà không gặp vấn đề gì:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (startend WITH &&)
);
và cái này:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING btree (user_id WITH =)
);
Tôi đã dành khá nhiều thời gian để tìm kiếm các gợi ý về việc tìm ra cách để thực hiện công việc này hoặc tìm hiểu tại sao nó không hoạt động. Có ý kiến gì không?