Database 在Oracle中,如何声明一对值上的唯一约束及其';s反向对
我有一个表定义了两个变量之间的规则:Database 在Oracle中,如何声明一对值上的唯一约束及其';s反向对,database,oracle,constraints,Database,Oracle,Constraints,我有一个表定义了两个变量之间的规则: CREATE TABLE VARIANTCOMBINATIONRULE ( VARRECID0 NUMBER(10) NOT NULL, VARRECID1 NUMBER(10) NOT NULL, RULE NUMBER ); ALTER TABLE VARIANTCOMBINATIONRULE ADD ( CONSTRAINT VARIANTCOMBINATIONRULE_PK PRIMARY KEY
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)有新记录。我认为您不能直接。。。有几个选项,比如使用触发器来确保这类事情(例如,通过自动插入带有特殊标记的反向对)。。。
CREATE UNIQUE INDEX unique_cd0_cd1
ON VARIANTCOMBINATIONRULE (least(VARRECID0, VARRECID1), greatest(VARRECID0, VARRECID1));