Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
2-1196926527
Dennis I. Komarov
2007-12-06 10:35
2007.12.30
Apply Button


9-1164757810
_Andru_
2006-11-29 02:50
2007.12.30
Кому-то нужны сырцы двигла?=)


2-1196976475
BD
2007-12-07 00:27
2007.12.30
Сортировка баз данных


15-1196234589
Fantomas
2007-11-28 10:23
2007.12.30
BDE


15-1196325054
de.
2007-11-29 11:30
2007.12.30
Нужны иконки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский