Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА / 10 сообщений из 10, страница 1 из 1
17.03.2003, 12:00
    #32120994
Serge A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
Можно ли в InterBase/FireBird создать уникальный индекс, который бы не учитывал регистр символов в значении поля?

Например, на поле NAME VARCHAR(20) создан UNIQUE INDEX.
Если, например, в одной из записей NAME='Иванов', то при добавлении записи с NAME='ИВАНОВ' или NAME='иванов' сервер сообщил бы о нарушении уникальности индекса?

Или, может быть, существует другое решение проблемы?

Заранее спасибо.
Сергей
...
Рейтинг: 0 / 0
17.03.2003, 12:04
    #32120998
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
Ну, вообще, лучше сделай уникальным интегер какой нить. И увеличивай его при добавлении на единичку в триггере на инсерт. Я не знаю как именно у тебя эти фамилии используются, но вдруг у тебя два брата Иванова? Или ты и имя и отчество и год рождения в уникальное поля поместиш ?-)
...
Рейтинг: 0 / 0
17.03.2003, 12:35
    #32121039
Serge A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
Требуется избежать появления одинаковых фамилий при добавлении новых записей. Первичный ключ здесь не при чем...
...
Рейтинг: 0 / 0
17.03.2003, 13:09
    #32121071
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
А как насчет братьёв, однофамильцев? или политика компании запрещает подобное ?-)
...
Рейтинг: 0 / 0
17.03.2003, 13:34
    #32121105
Serge A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
Даже если с учетом имени отчество. Если есть ФИО "Иванов И.И.", то сервер должен запретить добавление ФИО "ИВАНОВ И.И"
...
Рейтинг: 0 / 0
17.03.2003, 14:53
    #32121210
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
Привет. Сделай триггер перед вставкой и изменением с проверкой EXISTS.
...
Рейтинг: 0 / 0
18.03.2003, 10:28
    #32121783
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
Можно сделать уникальное поле,
и хранить в нем строки в Upper Case например, (с индексом)
и при вставке/редактировании преобразовывать строки в верхний регистр.
при выводе - преобразоввывать в нужный вид.
...
Рейтинг: 0 / 0
19.03.2003, 02:55
    #32122514
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
В нужный это какой?
...
Рейтинг: 0 / 0
24.03.2003, 05:55
    #32125307
San555555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
при добавлении и редактировании записи пусть срабатывает триггер. он и должен проверять, есть ли одинаковые фамилии, при этом надо сделать сравниваемые строки одинакового регистра. если есть сопадения, от ворот поворот - сообщение об ошибке...
...
Рейтинг: 0 / 0
24.03.2003, 09:37
    #32125364
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
Это может оказаться довольно медленным... Дело в том что поиск получается не по индексу и просматривается каждый раз для каждой строки вся таблица... Модет быть лучше сделать дополнительный столбец, в котором будет эта же строка, но написанная скажем ТОЛЬКО большими буквами и по которой будет стоять индекс... Скорость работы увеличится... Но увеличатся и напряги, нужен будет триггер на вставку и изменение записи, который будет дублировать (с преобразованием к верхнему регистру) первый столбец...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]