2013-04-01 3 views
3

Когда я бросаю столбец unique (только уникальный не первичный ключ), Жаба подсказывает мне, хочу ли я сохранить индекс.Oracle сохраняет уникальный индекс ограничений

Мне логично удалить индекс, но почему он предлагает его сохранить? Это для экономии времени, если я сделаю один и тот же столбец уникальным в более поздний момент времени? (что меня смущает, поскольку старый индекс может вызвать конфликты).

+1

прочитал некоторые соображения в [http://stackoverflow.com/questions/7521817/oracle-unique-constraint-and-unique-index-question](http://stackoverflow.com/questions/7521817/oracle-unique -constraint-and-unique-index-question) –

ответ

3

Начиная с версии 10g, Oracle представила опцию «KEEP INDEX» на ALTER TABLE...DROP CONSTRAINT. Из того, что я прочитал, должно быть наоборот ... в том, что он должен опускать индекс, если вы не укажете «KEEP INDEX». Поэтому я предполагаю, что вы удалили индекс через меню графического интерфейса.

Учитывая это, GUI TOAD, вероятно, был разработан, чтобы побудить вас к этому. Интересно, действительно ли вы набрали ALTER TABLE...DROP CONSTRAINT, если он все равно предложит вам. Я собираюсь поставить «нет».

+0

Да, запущенные запросы непосредственно из редактора не вызывают никаких подсказок (для всего на самом деле) – Cemre

+0

Я все еще удивляюсь: почему кто-то хочет сохранить индекс после сброса ограничения? – Cemre

+0

Я предполагаю, что это была бы редкая ситуация, но я думаю, что она больше предназначена для устранения ограничения внешнего ключа. Таким образом, вы можете удалить ограничение, если вы не хотите применять ссылочную целостность между двумя таблицами. Но вы все равно можете использовать его в некоторых разделах JOIN/WHERE, закопанных в коде приложения. – Aaron

Смежные вопросы