Oracle 索引的常用操作
索引的常用操作
-- 创建主键索引 alter table table_name add constraint pk_name primary key(table_id); -- 创建普通索引 create index index_name on table_name (table_colounm_name); -- 删除全局主键索引 alter table table_name DROP constraint index_name ; -- 索引重建 alter index ipk_name REBUILD ; -- 删除索引 DROP INDEX index_name; -- 创建复合索引 CREATE INDEX Index_name ON table_name(colunm_1,colunm_2); -- 重建索引 alter index index_name rebuild; -- 重建分区索引 alter index index_name rebuild partition partition_name; -- 在线增加分区索引 `online`,不影响其他DML操作,否则可能会阻塞DML alter table table_name add (constraint ipx_name primary key(ID,insert_tm) using index local) online; -- 创建分区索引 create index index_name on table_name (table_colounm_name) local;
删除自动生成的主键索引
declare v_cursor integer; v_sql varchar2(500); BEGIN FOR RX IN (select index_name from user_indexes WHERE table_name = 'table_name') LOOP v_cursor:=dbms_sql.open_cursor; v_sql:='alter table table_name drop constraint ' || RX.INDEX_NAME; dbms_sql.parse(v_cursor, v_sql, dbms_sql.v7); dbms_sql.close_cursor(v_cursor); END LOOP; end; /