Oracle数据库,建索引之前先查询一下,索引如果存在就不执行创建索引语句,如果不存在则执行

BEGIN
declare
num1 int;
select count(1) into num1 from user_ind_columns where index_name=('INDEX_M_ID');
if num =1 then
dbms_output.PUT_LINE('索引存在');
ELSE
Execute immediate 'create index INDEX_M_ID on VERIFICATION_RECORD(M_ID DESC)';
end if;
end;
这是我写的sql语句,求正确语句 应该怎么写哈

2个回答

不能使用先删除再创建的形式吗?反正不存在也不影响下面语句的执行

weixin_37582106
weixin_37582106 老铁,那种的 我也写了 一直报错。我加你QQ了
3 年多之前 回复

declare
num1 int;
BEGIN
select count(1) into num1 from user_ind_columns where index_name=('INDEX_M_ID');
if num1 >=1 then
dbms_output.PUT_LINE('索引存在');
ELSE
Execute immediate 'create index INDEX_M_ID on TESTTT(NAME)';
end if;
end;

weixin_37582106
weixin_37582106 老铁 你QQ多少哈
3 年多之前 回复
strutce
丵鹰 回复weixin_37582106: 有用就采纳下吧,谢拉
3 年多之前 回复
weixin_37582106
weixin_37582106 老铁 可以了 感谢哈
3 年多之前 回复
strutce
丵鹰 回复weixin_37582106: TESTTT(NAME)'; 这个改成你自己的表名和字段
3 年多之前 回复
strutce
丵鹰 回复weixin_37582106: 加QQ吧
3 年多之前 回复
weixin_37582106
weixin_37582106 老铁 还是报错啊 能联系一下吗
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐