this is equivalent to a UNIQUE constraint
Exclusion constraints are implemented using an index
ALTER TABLE person
add constraint person_udx_person_id2
EXCLUDE USING gist (
person_id WITH =
)
;
tucha=> ALTER TABLE "person_x_person" ADD CONSTRAINT "person_x_person_fk_parent_person_id"
tucha-> FOREIGN KEY ("parent_person_id")
tucha-> REFERENCES "person" ("person_id")
tucha-> ON DELETE CASCADE ON UPDATE NO ACTION DEFERRABLE;
ERROR: there is no unique constraint matching given keys for referenced table "person"
получается, что PostgreSQL не создаёт UNIQUE index, хотя и заявляет об этом.
где я не прав?
Создаёт, но это GIST-индекс, а не b-tree. А для FK подходят только они, как я уже писал. :(
Обсуждают сегодня