|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
Можно ли в InterBase/FireBird создать уникальный индекс, который бы не учитывал регистр символов в значении поля? Например, на поле NAME VARCHAR(20) создан UNIQUE INDEX. Если, например, в одной из записей NAME='Иванов', то при добавлении записи с NAME='ИВАНОВ' или NAME='иванов' сервер сообщил бы о нарушении уникальности индекса? Или, может быть, существует другое решение проблемы? Заранее спасибо. Сергей ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 12:00 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
Ну, вообще, лучше сделай уникальным интегер какой нить. И увеличивай его при добавлении на единичку в триггере на инсерт. Я не знаю как именно у тебя эти фамилии используются, но вдруг у тебя два брата Иванова? Или ты и имя и отчество и год рождения в уникальное поля поместиш ?-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 12:04 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
Требуется избежать появления одинаковых фамилий при добавлении новых записей. Первичный ключ здесь не при чем... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 12:35 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
А как насчет братьёв, однофамильцев? или политика компании запрещает подобное ?-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 13:09 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
Даже если с учетом имени отчество. Если есть ФИО "Иванов И.И.", то сервер должен запретить добавление ФИО "ИВАНОВ И.И" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 13:34 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
Привет. Сделай триггер перед вставкой и изменением с проверкой EXISTS. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2003, 14:53 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
Можно сделать уникальное поле, и хранить в нем строки в Upper Case например, (с индексом) и при вставке/редактировании преобразовывать строки в верхний регистр. при выводе - преобразоввывать в нужный вид. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2003, 10:28 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
В нужный это какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 02:55 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
при добавлении и редактировании записи пусть срабатывает триггер. он и должен проверять, есть ли одинаковые фамилии, при этом надо сделать сравниваемые строки одинакового регистра. если есть сопадения, от ворот поворот - сообщение об ошибке... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2003, 05:55 |
|
Создание уникального индекса БЕЗ УЧЕТА РЕГИСТРА
|
|||
---|---|---|---|
#18+
Это может оказаться довольно медленным... Дело в том что поиск получается не по индексу и просматривается каждый раз для каждой строки вся таблица... Модет быть лучше сделать дополнительный столбец, в котором будет эта же строка, но написанная скажем ТОЛЬКО большими буквами и по которой будет стоять индекс... Скорость работы увеличится... Но увеличатся и напряги, нужен будет триггер на вставку и изменение записи, который будет дублировать (с преобразованием к верхнему регистру) первый столбец... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2003, 09:37 |
|
|
start [/forum/topic.php?fid=40&fpage=524&tid=1580733]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 287ms |
total: | 428ms |
0 / 0 |