В Oracle, как мне объявить уникальное ограничение для пары значений И это обратная пара - PullRequest
6 голосов
/ 09 октября 2011

У меня есть таблица, которая определяет правило между двумя вариантами:

CREATE TABLE VARIANTCOMBINATIONRULE
(
  VARRECID0  NUMBER(10)    NOT NULL,
  VARRECID1  NUMBER(10)    NOT NULL,
  RULE       NUMBER
);

ALTER TABLE VARIANTCOMBINATIONRULE ADD (
  CONSTRAINT VARIANTCOMBINATIONRULE_PK
  PRIMARY KEY
  (VARRECID0, VARRECID1));

Как создать ограничение, запрещающее «обратные пары»? Под этим я подразумеваю, что если есть запись для вариантов 12 и 14, новая запись для обратной пары (14 и 12) не должна быть разрешена.

1 Ответ

7 голосов
/ 09 октября 2011
CREATE UNIQUE INDEX unique_cd0_cd1
      ON VARIANTCOMBINATIONRULE (least(VARRECID0, VARRECID1), greatest(VARRECID0, VARRECID1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...