Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

Уникальный индекс для строки   Найти похожие ветки 

 
ChaoX ©   (2007-08-25 17:23) [0]

Мне нужно добавить уникальный индекс на строковое поле (varchar(32)) в таблице, причём сделать это так, чтобы регистр символов не влиял ни на что (т.е. строка "Рыбы" должна быть равна "рыбы"). При этом я очень не хочу возлагать эту функцию на программу. Сейчас я пытаюсь проэмулировать это триггером на before insert с проверкой с помощью upper, но у меня никак не получается :(

Мастера, выручайте!


 
Anatoly Podgoretsky ©   (2007-08-25 18:47) [1]

А оно вообще может это?


 
Johnmen ©   (2007-08-25 19:05) [2]


> но у меня никак не получается :(

Что именно?


 
Desdechado ©   (2007-08-25 19:50) [3]

Сделать отдельное поле, которое заполняется триггером сразу в верхнем регистре. По нему построить уникальный индекс. Полезно будет и при регистронезависимых сортировках, и при поисках.

А проверять существование в триггере бессмысленно, т.к. он в отличие от индекса работает в контексте транзакции. Т.е. при многопользовательской работе много шансов получения дублей.


 
sniknik ©   (2007-08-25 20:12) [4]

> которое заполняется триггером сразу в верхнем регистре.
а зачем триггер? разве нет вычисляемых полей в FireBird-е?
типа mssql-ого CREATE TABLE ... (..., Name VarChar(), UpName AS Upper(Name)) по которому после и индекс можно сделать, и искать по нему, хотя это и лишнее (без этого COLLATION можно выбрать такой, что поведение будет подобно желаемому в [0])

точно не скажу, но вроде и вычисляемые и коллатионы в FireBird-е есть.


 
Desdechado ©   (2007-08-25 20:37) [5]

Есть и вычисляемые, и collation"ы.
Просто я настолько редко ими пользуюсь, что не помню, можно ли по ним построить уникальный индекс.


 
Johnmen ©   (2007-08-25 21:31) [6]

Индексы по вычисляемым полям доступны не раньше 2.0
У автора 1.5


 
Anatoly Podgoretsky ©   (2007-08-25 21:44) [7]

> Desdechado  (25.08.2007 20:37:05)  [5]

Если есть collation и работает, то это хорошо, а то предложения выглядят как поправить правое ухо левой рукой.


 
atruhin ©   (2007-08-26 08:24) [8]

См. http://www.ibase.ru/devinfo/ibrusfaq.htm



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
4-1181375147
cvv
2007-06-09 11:45
2007.12.30
Как убрать сообщение?


2-1196782477
Alexey
2007-12-04 18:34
2007.12.30
Как правильно масштабировать форму


6-1176202407
Khabibulin
2007-04-10 14:53
2007.12.30
Как залогиниться у удаленного компьютера по локальной сети?


2-1196547940
VadimSpb
2007-12-02 01:25
2007.12.30
Получение даты с MS SQL 2005


15-1196164673
shark
2007-11-27 14:57
2007.12.30
Вопрос по 3D эффекты.