应删除索引但阻止添加新主键

时间:2014-04-21 21:14:38

标签: sql visual-studio-2010 oracle oracle11g merge-module

我有一种我不明白的奇怪情况。我在合并模块中运行一个SQL块来更新oracle架构。我正在尝试更改几个表的主键,因此我执行以下步骤:

删除FK约束, 掉PK, 丢弃PK索引(如果在丢弃PK后索引仍然存在), 添加新的PK, 添加FK&#39>

这是我的问题。一切都很好,直到我们到达索引被删除的部分。主要内容被删除(据我所知),Oracle根据该密钥创建的任何索引也会立即丢失。我遇到了索引持久存在的问题,所以我添加了DROP INDEX脚本以确定它已被删除,但是,这是发生的事情:

Alter Table TABLE1 Drop Constraint TABLE1_PK

命令成功运行


DROP INDEX TABLE1_PK

ORA-01418:指定的索引不存在(这正是我的预期)


ALTER TABLE TABLE1 ADD (CONSTRAINT TABLE1_PK PRIMARY KEY (TABLE_KEY) ENABLE VALIDATE)

ORA-00955:现有对象已经使用了名称(该对象在每种情况下都是旧索引)


这当然会阻止任何FK的链接,因为它们现在基于新密钥。当我在TOAD中运行它时,SQL可以运行,但我无法弄清楚它为什么没有通过合并模块。有人可以帮忙吗?

0 个答案:

没有答案