在多个列上创建条件唯一约束



我需要使用 Oracle 在多个列上创建一个条件唯一约束,但我没有这样做。

以下是我现在拥有的,但它不起作用:

基本上,我的条件唯一约束需要在 a = 1 的一个条件下处理列的组合。

alter table <table_name> add constraint <constraint_name> unique (<column_1>, <column_2>, a = 1);

当我运行这个 alter 语句时,我收到此错误:

ORA-00907: missing right parenthesis

我相信

这就足够了:

create unique index <index_name> on <table_name> (case when a = 1 then <column_1> end, 
                                                  case when a = 1 then <column_2> end); 

最新更新