oracle 删除索引(如果存在)

标签 oracle indexing

如何仅删除存在的索引?

看起来很简单,但我确实在网上找到了任何东西。 我们的想法是仅在它存在时才将其删除,因为如果不存在,我将出现错误并且我的进程将停止。

我发现这个来查找索引是否存在:

select index_name
from user_indexes
where table_name = 'myTable'
and index_name='myIndexName'

但我不知道如何将它与

DROP INDEX myIndexName

最佳答案

不检查是否存在。尝试删除,并在必要时捕获异常...

DECLARE
   index_not_exists EXCEPTION;
   PRAGMA EXCEPTION_INIT (index_not_exists, -1418);
BEGIN
   EXECUTE IMMEDIATE 'drop index foo';
EXCEPTION
   WHEN index_not_exists
   THEN
      NULL;
END;
/

关于oracle 删除索引(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2722630/

相关文章:

sql - 使用 BETWEEN 子句 SQL 输出缺少名称

c# - 在 Entity Framework 中参数化原始 Oracle SQL 查询

database - 数据库中的位图索引不能加快查询速度

sql - 如何多次使用不同的数据运行相同的sql

按日期时间排序时,Mysql 查询太慢

mysql - 在MySQL上优化查询SQL

客户每月的 SQL 平均值

MySQL Select with several join 首先对连接表进行全表扫描

solr - 使用 Solr 索引维基百科不起作用

c++ 传递函数作为数组索引不起作用。