我有一个名为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的案例陈述?