【问题标题】:Drop Index if exsists... create if exists [duplicate]如果存在则删除索引...如果存在则创建[重复]
【发布时间】:2013-11-16 01:18:51
【问题描述】:

在删除和创建索引之前,我想检查索引是否存在。

这可以通过简单的 1-2 行语句实现吗?

【问题讨论】:

    标签: oracle oracle11g


    【解决方案1】:

    你当然可以查询dba_indexes/all_indexes/user_indexes看索引是否存在。假设您要查找特定的索引名称(您也可以匹配列集)

    select count(*)
      into l_cnt
      from all_indexes
     where owner = <<owner of index>>
       and index_name = <<name of index>>
    
    if( l_cnt > 0 )
    then
      <<index exists>>
    else
      <<index doesn't exist>>
    end if;
    

    当然,您也可以简单地删除索引并捕获它不存在的异常。

    【讨论】:

    • 如果存在 则无法执行“创建索引 ”之类的操作?如果没有生病,请坚持您的第一个答案;)
    • @user2428207 - 没有条件 DDL 语句这样的东西,不。
    • @user2428207,只需删除索引 - 如果索引不存在,它将引发您可以捕获的异常。
    猜你喜欢
    • 2021-05-02
    • 1970-01-01
    • 2013-09-08
    • 2015-09-09
    • 2023-02-06
    • 1970-01-01
    • 2015-09-12
    • 2013-05-26
    • 1970-01-01
    相关资源
    最近更新 更多