Создать Unqiue регистрозависимое ограничение для двух полей - PullRequest
9 голосов
/ 15 октября 2010

В Oracle 10g, как добавить уникальное нечувствительное к регистру ограничение для двух полей varchar?Например, если в таблице уже есть следующие записи:

"Stephen", "Swensen"
"John", "Smith"

Следующие вставки будут недействительными:

"stephen", "Swensen"
"John", "smith"
"stephen", "swensen"

Но допустимы следующие вставки:

"Stephen", "Smith"
"John", "Swensen"

Ответы [ 2 ]

8 голосов
/ 04 апреля 2013

Мне удалось заставить его работать, выполнив:

CREATE UNIQUE INDEX person_name_upper ON person(
    UPPER(first_name), UPPER(last_name));
6 голосов
/ 15 октября 2010

Если ваша таблица называется person , а столбцы имени и фамилии называются first_name и last_name , добавьте это уникальное ограничение:

ALTER TABLE person ADD CONSTRAINT person_name_unique
    UNIQUE(LOWER(first_name),LOWER(last_name));

Дайте мне знать, правильно ли я понял ваш вопрос и сделал правильные предположения о расположении вашего стола.

...