具有不可互换值的多列上的UNIQUE约束

时间:2017-03-03 10:09:44

标签: oracle plsql

我想在2列colA和colB上放置UNIQUE约束。设置约束后,它将确保colA和colB的值组合为UNIQUE,

它还应该确保,例如,

对于表格中的一行,如果colA值为100& colB值为101,则colA值不能为101,并且该表中任何其他行的colB值不能为100。

请建议。

此致 萨钦

1 个答案:

答案 0 :(得分:1)

Checkunique index

    create table uni(colA number, colB number);

    ALTER TABLE uni ADD CONSTRAINT constraint_name  check( cola != colb);

    create unique index uni_idx on uni(  LEAST( cola , colb),GREATEST(cola , colb));

insert into uni values (100,101); (OK)
into uni values (100,102); (OK)
into uni values (101,100); (error)
into uni values (100,100); (error)