加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何检查Oracle中的索引

发布时间:2020-12-12 13:49:16 所属栏目:百科 来源:网络整理
导读:我正在为依赖于Oracle数据库的产品编写架构升级脚本.在一个区域中,我需要在表上创建一个索引 – 如果该索引不存在.有没有一个简单的方法来检查我知道Oracle脚本中的名称的索引的存在? 这将与SQL Server中的类似: IF NOT EXISTS(SELECT * FROM SYSINDEXES W
我正在为依赖于Oracle数据库的产品编写架构升级脚本.在一个区域中,我需要在表上创建一个索引 – 如果该索引不存在.有没有一个简单的方法来检查我知道Oracle脚本中的名称的索引的存在?

这将与SQL Server中的类似:
IF NOT EXISTS(SELECT * FROM SYSINDEXES WHERE NAME =’myIndex’)
//然后创建myIndex

从user_indexes中选择count(*),其中index_name =’myIndex’

sqlplus不支持IF …,但是,您必须使用匿名PL / SQL块,这意味着EXECUTE IMMEDIATE可以执行DDL.

DECLARE
    i INTEGER;
BEGIN
    SELECT COUNT(*) INTO i FROM user_indexes WHERE index_name = 'MYINDEX';
    IF i = 0 THEN
        EXECUTE IMMEDIATE 'CREATE INDEX myIndex ...';
    END IF;
END;
/

编辑:如所指出的那样,Oracle将非引号对象名称全部存储在大写中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读