我有Oracle 11.2.0.2.0和一个具有唯一约束的表,该约束由以下脚本创建:
create table foo (id varchar(26) not null, name varchar(50) not null);
alter table foo add constraint pk_foo primary key (id);
/**/
alter table foo add constraint un_foo unique (name);
我需要去掉唯一约束,这很容易:
alter table foo drop constraint un_foo;
问题是:当数据库在SQL Developer中备份并恢复时,则
un_foo
唯一索引由创建
明确的
命令位于
/**/
行:
CREATE UNIQUE INDEX un_foo ON foo (name);
上述alter命令不会删除这种显式创建的索引。我意识到以下命令工作:
alter table foo drop constraint un_foo drop index;
alter table foo drop primary key drop index
在中
documentation
或在
Oracle Developer Community discussion
. 而且
this answer at AskTom
也使用此语法(对于
keep index
). 然而,我在铁路图中看不到任何关于这种语法的推理
alter table
命令
问题:是语法吗
alter table foo drop constraint un_foo drop index
合法的如果是这样,基于铁路图中的哪些文件或流程?如果没有,为什么命令没有失败?
谢谢