Уникальный индекс / ограничение для 2 столбцов в одной таблице в Oracle - PullRequest
0 голосов
/ 23 января 2020

Мне нужно создать уникальное ограничение / индекс для 2 столбцов в таблице. Один из этих 2 столбцов может быть null. Моему уникальному ограничению / индексу нужно проверить, что эти 2 столбца не равны NULL, тогда они не могут быть дубликатами.

Не знаете, как с этим справиться, какие-нибудь стартеры?

Ответы [ 2 ]

2 голосов
/ 23 января 2020

Для этого вы можете использовать первичный ключ и индекс на основе функций. Вот пример:

create table t (
    id int primary key,
    x int,
    y int
);

create unique index t_x_y on t(x, y, (case when x is null or y is null then id end));

Здесь - это дб <> скрипка.

0 голосов
/ 23 января 2020

Попробуйте использовать функцию NVL для столбца в индексе / ограничении.

...