![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уникальные индексы и констрейнты
den_777 © (2004-05-26 15:38:00)Может где в документации и есть, но хочется узнать от мастеров чем отличается
ALTER TABLE MYTABLE1 ADD CONSTRAINT UNQ_1 UNIQUE (FIELD1);
от
CREATE UNIQUE INDEX IDX_UQ1 ON MYTABLE1 (FIELD1);
насколько я понимаю в первом случае все равно создается индекс, только системный со своим именем RDB$XXXXX
Так в чем тогда различие(не в синтаксисе конечно, а на уровне базы данных)
Johnmen (2004-05-26 16:19:00) [1]>И все же зачем две аналогичные вещие существуют параллельно в SQL
Какие две вещи ?
Индексы и констрейнты это разные вещи. Но в частном случае (в вопросе) это с т.з. функционирования одно и то же, о чем и сказали уже...
Sandman25+1 (2004-05-26 16:18:00) [2][2] den_777 (26.05.04 15:55)
Уникальный индекс ускоряет лучше - нет необходимости проверять наличие дубликатов.
>Уникальный индекс вроде тоже самое делает
С точки зрения проектировщика БД, в таком случае нужно писать constraint, а не создавать индекс.
den_777 (2004-05-26 15:55:00) [3]
> (Уникальный) индекс создается с целью ускорить поиск.
можно создать и обычный индекс - разницы никакой для ускорения поиска нет. Еще более интересно и вполне логично, что анализатор плана в IBExpert показывает использование при поиске данных системного индекса, который создался автоматически при создании констрейнта.Так что с точки зрения ускорения поиска разницы абсолютно никакой.
> Констрейнт на уникальность создается с целью гарантировать
> логическую целостность данных.
Уникальный индекс вроде тоже самое делает
И все же зачем две аналогичные вещие существуют параллельно в SQL
Sandman25+1 (2004-05-26 15:45:00) [4](Уникальный) индекс создается с целью ускорить поиск.
Констрейнт на уникальность создается с целью гарантировать логическую целостность данных.
Резюмируя, скажу, что разницы с точки зрения БД я не вижу.