条件语句

时间:2017-03-29 14:38:11

标签: sql database oracle-sqldeveloper

我有一个名为A的表,其中包含以下列:

id,code,unicity

unicity只能有三个值1,2& 3。

我想为所有三列的组合添加一个唯一约束,但是在一些条件上会显示单一性。

--first senario:
insert into A values(1,1,1); 
insert into A values(1,1,2); --=>ok

--second senario:
insert into A values(1,1,1); 
insert into A values(1,1,3);--=>not ok

--third senario:
insert into A values(1,1,1); 
insert into A values(1,1,1);--=>not ok

--fourth senario:
insert into A values(1,1,2); 
insert into A values(1,1,1);--=>ok

--fifth senario:
insert into A values(1,1,2); 
insert into A values(1,1,3);--=>not ok

--sixth senario:
insert into A values(1,1,2); 
insert into A values(1,1,2);--=>not ok

当unicity为1时,如果已经有一个具有相同id和代码的unicity 1或3,那么它应该是一个错误。但是如果已经有2个具有相同ID和代码的应该没问题。

create index test on A 
{
id,
code 
case unicity when 1...

}

我的问题是如何在这种情况下编写关于unicity的案例陈述?

0 个答案:

没有答案