Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

проверка на уникальность [D7, FB 1.5]


Bolek ©   (2007-04-23 11:51:00) 

Доброго времени суток всем

подскажите, пожалуйста, чего не в порядке
есть таблица
CREATE TABLE NEW_TABLE (
   ID      INTEGER NOT NULL,
   FIELD1  VARCHAR(50) NOT NULL,
   FIELD2  VARCHAR(255) NOT NULL
);

при попытке создать проверку на уникальность по строковым полям
alter table NEW_TABLE
add constraint UNQ1_NEW_TABLE
unique (FIELD1,FIELD2)

получаю сообщение:
"This operation is not defined for system tables.
unsuccessful metadata update.
key size too big for index UNQ1_NEW_TABLE."

чего не так делаю?
P.S.пользуюсь IBExpert'ом


Bolek   (2007-04-23 12:33:00) [1]

[7] попробую


Desdechado   (2007-04-23 12:24:00) [2]

В FB2 снято ограничеие на длину индекса.


sniknik   (2007-04-23 12:09:00) [3]

> создание новых доменов не прокатит? или они только применимы к полям?
люди!!!! вы что ВООБЩЕ ничего по базам не читаете? сразу с нуля и в форум... ужас.


sniknik   (2007-04-23 12:06:00) [4]

> как можно данную проблему решить?
> переход на другу СУБД не предлагайте :)
в пол литровую бутылку не влазит 2 литра воды, как можно данную проблему решить?
только не предлагайте взять двухлитровую банку. ;)

p.s. стой индекс по тому что влазит... можеш дополнительно хеш строк считать, и по нему строить.


Bolek   (2007-04-23 12:05:00) [5]

как вариант...
создание новых доменов не прокатит? или они только применимы к полям?


Сергей М.   (2007-04-23 12:02:00) [6]


> Bolek ©   (23.04.07 11:59) [2]


Добавь еще одно поле, к примеру, BIGINT-типа, организуй его уникальность.

В триггере на вставку/обновление расчитай хэш или контр.сумму данных, хранящихся в полях FIELD1 и FIELD2, и запиши результат в это поле.


Bolek   (2007-04-23 11:59:00) [7]

как можно данную проблему решить?
переход на другу СУБД не предлагайте :)


Johnmen   (2007-04-23 11:56:00) [8]

Размер полей слишком велик для построения индекса.


Наверх

Титульная страница Поиск, карта сайта Написать письмо