PostgreSQL Exclure en utilisant l'erreur: le type de données entier n'a pas de classe d'opérateur par défaut
-
31-10-2019 - |
Question
Dans PostgreSQL 9.2.3, j'essaie de créer ce tableau simplifié:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (user_id WITH =, startend WITH &&)
);
Mais j'obtiens cette erreur:
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.
La Les documents postgresql utilisent cet exemple Ce qui ne fonctionne pas pour moi:
CREATE TABLE room_reservation (
room text,
during tsrange,
EXCLUDE USING gist (room WITH =, during WITH &&)
);
Même message d'erreur.
Et celui-là, ce qui ne fonctionne pas non plus pour moi:
CREATE TABLE zoo (
cage INTEGER,
animal TEXT,
EXCLUDE USING gist (cage WITH =, animal WITH <>)
);
Même message d'erreur.
Je suis en mesure de créer cela sans aucun problème:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (startend WITH &&)
);
et ça:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING btree (user_id WITH =)
);
J'ai passé pas mal de temps à chercher des conseils sur la façon de comprendre comment faire fonctionner, ou de comprendre pourquoi cela ne fonctionnera pas. Des idées?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange