Oracle保持唯一约束索引

3
当我删除一个唯一的列约束(仅唯一,不是主键),Toad会提示我是否要保留索引。
对我来说,逻辑上应该删除索引,但为什么它会提供保留索引?是为了在以后再次使同一列唯一时节省时间吗?(这有点让我困惑,因为旧索引可能会引起冲突)。

1
请阅读以下链接中的一些注意事项:https://dev59.com/eGsz5IYBdhLWcg3w_NED - Florin Ghita
1个回答

3
自从10g起,Oracle在ALTER TABLE...DROP CONSTRAINT上引入了“KEEP INDEX”选项。据我所读,它应该是相反的......也就是说,除非您指定“KEEP INDEX”,否则它应该删除索引。因此,我假设您是通过GUI菜单移除了索引。

考虑到这一点,TOAD GUI可能设计成提示您这个问题。我想知道如果您实际运行ALTER TABLE...DROP CONSTRAINT是否仍然会提示您。我将赌“不会”。


是的,直接从编辑器运行查询不会导致任何提示(实际上对所有操作都是如此)。 - Cemre Mengü
我仍然想知道:为什么有人想在删除约束后保留索引? - Cemre Mengü
我认为这是一种罕见的情况,但更适用于删除外键约束。这样,如果您不想在两个表之间执行引用完整性,则可以删除约束。但是,您可能仍然会在某些 JOIN/WHERE 子句中隐藏在应用程序代码中。 - Aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接