2013-04-01 91 views
3

当我删除unique列(只是唯一的不是主键)约束时,Toad会提示我是否要保留索引。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在ALTER TABLE...DROP CONSTRAINT上引入了“KEEP INDEX”选项。从我读过的内容来看,它应该是相反的......因为它应该删除索引,除非你指定了“KEEP INDEX”。所以我假设你通过GUI菜单删除了索引。

考虑到这一点,TOAD图形用户界面可能是为了提示你。我想知道你是否真的跑ALTER TABLE...DROP CONSTRAINT如果它仍然会提示你。我打赌“不”。

+0

是直接从编辑器运行查询不会导致任何提示(对于所有内容) – Cemre

+0

我仍然想知道:为什么有人希望在删除约束后保留索引? – Cemre

+0

我想这将是一种罕见的情况,但我认为它更多用于移除外键约束。这样,如果您不想强制执行两个表之间的参照完整性,则可以删除约束。但是你可能仍然会在应用程序代码中的一些JOIN/WHERE子句中使用它。 – Aaron