Создайте условные уникальные ограничения для нескольких столбцов - PullRequest
0 голосов
/ 04 июня 2019

Мне нужно создать условное уникальное ограничение для нескольких столбцов с помощью Oracle, но мне не удается это сделать.

Ниже приведено то, что у меня есть сейчас, но оно не работает:

По сути, мое условное ограничение уникальности должно обрабатывать комбинацию столбцов при одном условии, которое = 1.

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

Я получаю эту ошибку при выполнении этого оператора alter:

ORA-00907: missing right parenthesis

1 Ответ

1 голос
/ 04 июня 2019

Я считаю, что этого достаточно:

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