День добрый.
Можно ли запретить вставку дублирующихся значений в поле без учета регистра (значение = ЗНАЧЕНИЕ = зНачение и т.д.) средствами самой БД?
А если нет, какая техника обычно используется?
Сделал уникальный индекс на поле, база создана с WIN1251, но все равно дублирование разрешается
Поиск по форуму у меня почему-то не работает, кстати. Вообще ничего не ищет, даже явно существующие вхождения...
Как запретить дублирование значений без учета регистра?
-
- Сообщения: 38
- Зарегистрирован: 05 июл 2007, 13:24
Re: Как запретить дублирование значений без учета регистра?
уникальный индекс на UPPER(name) ?
-
- Сообщения: 38
- Зарегистрирован: 05 июл 2007, 13:24
Re: Как запретить дублирование значений без учета регистра?
Эээ... синтаксис плзззAttid писал(а):уникальный индекс на UPPER(name) ?
Попробовал по-всякому
CREATE UNIQUE INDEX "CSTUSER_Index01" ON UPPER (CSTUSER ("Field02"));
CREATE UNIQUE INDEX "CSTUSER_Index01" ON UPPER (CSTUSER) ("Field02"));
CREATE UNIQUE INDEX "CSTUSER_Index01" ON CSTUSER (UPPER ("Field02"));
Re: Как запретить дублирование значений без учета регистра?
Читаем релизноты и doc\sql.extensions\README.expression_indices.txt.
Не забываем указывать версию сервера.
Ещё один вариант -- дополнительное поле, заполняемое в триггере:а на него уже уникальный индекс.
Не забываем указывать версию сервера.
Ещё один вариант -- дополнительное поле, заполняемое в триггере:
Код: Выделить всё
NEW.NAME_UPPER = UPPER(NEW.NAME);
Re: Как запретить дублирование значений без учета регистра?
в дополнение - перестаньте использовать двойные кавычки в именах объектов, пока не поздно.Попробовал по-всякому
http://www.ibase.ru/ibfaq.htm#dtproblem