【问题标题】:Oracle keep unique constraint indexOracle保持唯一约束索引
【发布时间】:2013-04-01 13:00:15
【问题描述】:

当我删除 unique 列(只是唯一而非主键)约束时,Toad 会提示我是否要保留索引。

对我来说,合乎逻辑的事情是删除索引,但为什么要保留它?如果我在以后的某个时间点使同一列唯一,是否可以节省时间? (这让我很困惑,因为旧索引可能会导致冲突)。

【问题讨论】:

标签: sql oracle indexing toad


【解决方案1】:

从 10g 开始,Oracle 在ALTER TABLE...DROP CONSTRAINT 上引入了“KEEP INDEX”选项。从我读过的内容来看,它应该是相反的......因为它应该删除索引,除非您指定“KEEP INDEX”。所以我假设您通过 GUI 菜单删除了索引。

考虑到这一点,TOAD GUI 可能旨在提示您这样做。我想知道你是否真的运行了ALTER TABLE...DROP CONSTRAINT,如果它仍然会提示你。我敢打赌“不会”。

【讨论】:

  • 是的,直接从编辑器运行查询不会导致任何提示(实际上所有内容)
  • 我仍然想知道:为什么有人要在删除约束后保留索引?
  • 我想这将是一种罕见的情况,但我认为它更适用于删除外键约束。如果您不想在两个表之间强制执行引用完整性,那么您可以删除约束。但是你可能仍然在一些隐藏在应用程序代码中的 JOIN/WHERE 子句中使用它。
猜你喜欢
  • 2011-11-23
  • 2014-07-18
  • 1970-01-01
  • 2015-12-29
  • 2011-03-18
  • 2021-11-02
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
相关资源
最近更新 更多