我知道我不能直接从在stackoverflow和其他网站上研究类似的问题来做到这一点。Oracle数据库,将唯一索引转换为非唯一索引
但是,我需要这样做,我愿意与解决方法。
我试图用online
和parallel
创建一个非唯一索引,然后删除旧的唯一索引。但是,它没有说ORA-01408: such column list already indexed
。
如何将唯一索引转换为非唯一索引?
我知道我不能直接从在stackoverflow和其他网站上研究类似的问题来做到这一点。Oracle数据库,将唯一索引转换为非唯一索引
但是,我需要这样做,我愿意与解决方法。
我试图用online
和parallel
创建一个非唯一索引,然后删除旧的唯一索引。但是,它没有说ORA-01408: such column list already indexed
。
如何将唯一索引转换为非唯一索引?
如果您不想在创建新的之前删除旧索引,您可以通过一个额外的无用列创建新的索引,如骗了一下:
假设表具有以下的配置:
create table mytable (id number);
create unique index myunique on mytable (id);
到索引转换为非独特:
create index temp on mytable (id, 1);
drop index myunique;
create index mynonunique on mytable (id);
drop index temp;
在实践中,我不知道如何必要,这是 - 通常我只是删除并重新该指数在一些低活动期,最好是减少应用。
感谢您的回答和您的建议。 – Haozhun 2012-08-16 01:35:27
您必须删除旧索引然后创建新索引。 – 2012-08-16 01:04:08
@BobJarvis这种影响将如何选择性能? – Haozhun 2012-08-16 01:07:33