person
add constraint person_udx_person_id
EXCLUDE USING gist (
person_id WITH =,
tstzrange(valid_from, valid_till) WITH &&
)
Но для FK нужен unique и вот это падает с ошибкой:
ALTER TABLE "person_x_person" ADD CONSTRAINT "person_x_person_fk_parent_person_id"
FOREIGN KEY ("parent_person_id")
REFERENCES "person" ("person_id")
ON DELETE CASCADE ON UPDATE NO ACTION DEFERRABLE;
ERROR: there is no unique constraint matching given keys for referenced table "person"
Получается FK для темпоральной не получится сделать?
Да, так не получится. Можете либо FK заменить своим триггером, либо изменить модель (вот из-за таких вот штук, я, например, не уверен, что в стандарте вообще правильный подход). :(
Кстати, это же не bitemporal у вас... Т.е. у вас таблицы есть и только с application time или system time?
Обсуждают сегодня