`

Oracle重建索引 约束

阅读更多

rebuild索引

alter index indexname rebuild online;

 

同时删除oracle中有主外键关系的两张表

select constraint_name  from user_constraints WHERE table_name ='表名';--得到约束名字
----先删除约束,然后删除表
alter table table_name drop constraint 约束名(cascade);
----使约束暂时无效
alter table table_name disable/enable constraint constraint_name;
无效以后也可以删除表

或者只要删除外键约束,就可以删除主键表,不会影响到外键表的数据

select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R';



主键约束添加、删除
1、创建表的同时创建主键约束
一、无命名 create table accounts ( accounts_number number primary key, accounts_balance number );
二、有命名 create table accounts ( accounts_number number primary key, accounts_balance number, constraint yy primary key(accounts_number) );
2、删除表中已有的主键约束
一、无命名
SELECT * FROM USER_CONS_COLUMNS WHERE TALBE_NAME='accounts';找出主键
ALTER TABLE ACCOUNTS DROP CONSTRAINT SYS_C003063;
二、有命名
 ALTER TABLE ACCOUNTS DROP CONTRAINT yy;
3、向表中添加主键约束
ALTER TABLE ACCOUNTS ADD CONSTRAINT PK_ACCOUNTS PRIMARY KEY(ACCOUNTS_NUMBER);

4、加外键约束

ALTER TABLE USERS_PAYMENT_ITEM_RECORDS ADD CONSTRAINT FK_USER_FK_USERS_USER FOREIGN KEY(UID) REFERENCES CEB_USERS(UID);

 

Oracle中查询索引名称,批量修改索引名称语句

 

 

 在Oralce数据库数据优化过程中,对源数据表处理,原则上是做更名备份,作为被查或回退使用,所以,有修改数据表名后重新建表的操作,这样,往往也需要修改索引、主键、外键名称,方便重建,为了方便、快速生成处理数据脚本,采用批量处理方式,如第4、5段例句,拼接字符串,生成批量处理脚本。
一、依据DBA视图查询,涉及到的视图有:user_ind_columns、user_indexes、user_constraints
1、查询索引信息例句
select t.*,i.index_type from user_ind_columns t,user_indexes i
where t.index_name = i.index_name and t.table_name = i.table_name and
t.table_name in ('WORKFLOW_INSTANCE','WORKFLOW_INSTANCE_TRANSLOG','PROCESS_INSTANCE','PROCESS_INSTANCE_DATA',
'PROCESS_ACTIVITY','MESSAGE','MESSAGE_TRACK','NOTIFICATION_SEARCH_DATA')
2、查询主键信息例句
select cu.* from user_cons_columns cu, user_constraints au
where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and
au.table_name in ('WORKFLOW_INSTANCE','WORKFLOW_INSTANCE_TRANSLOG','PROCESS_INSTANCE','PROCESS_INSTANCE_DATA',
'PROCESS_ACTIVITY','MESSAGE','MESSAGE_TRACK','NOTIFICATION_SEARCH_DATA')
3、查询外键关系信息例句
select * from user_constraints c where c.constraint_type = 'R' and
c.table_name in ('WORKFLOW_INSTANCE','WORKFLOW_INSTANCE_TRANSLOG','PROCESS_INSTANCE','PROCESS_INSTANCE_DATA',
'PROCESS_ACTIVITY','MESSAGE','MESSAGE_TRACK','NOTIFICATION_SEARCH_DATA')
二、拼接字符串,生成批量处理语句
4、批量修改索引名称
    批量修改就是在索引名称后面追加字符,用以区分。
select
'alter index '||i.index_name||' rename to '||substr(i.index_name,0,decode(sign(25-length(i.index_name)),'-1',25,length(i.index_name)))||'tmp1;',
i.table_name,i.tablespace_name
 from user_indexes i
where i.table_name in ('DOC_DOCMAIN','DOC_WF_OPINION')
5、批量修改主键名称
select
'alter table '||c.table_name||' rename constraint '||c.constraint_name||' to '||substr(c.constraint_name,0,decode(sign(25-length(c.constraint_name)),'-1',25,length(c.constraint_name)))||'tmp1;',
c.table_name from user_constraints c where c.constraint_type in ('R','P') and
c.table_name in ('TASK_LIST','TASK_LIST_WAIT','WORKFLOW_INSTANCE_TRANSLOG')

分享到:
评论

相关推荐

    Oracle数据库,索引的相关知识

    文章目录1、索引的概念2、索引的类型(面试题)3、创建索引4、修改和重建索引5、删除索引6、查看索引信息7、索引与约束(面试题)8、何时使用索引(面试题) 1、索引的概念 1)概念:Oracle数据库中的索引是一种建立...

    oracle第十章PPT

    oracle索引的学习 了解Oracle提供种的主要索引类型,以及各自的特点 掌握如何创建各种索引 理解约束与索引之间的关系 掌握对得索引的重建与合并操作 能查看索引的使用情况和状态 了解Oracle的对索引的使用

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    最全的oracle常用命令大全.txt

    非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行:...

    Oracle面试题 oracle学习题

    12. 如何在不影响子表的前提下,重建一个母表 13. 解释归档和非归档模式之间的不同和它们各自的优缺点 14. 如何建立一个备份控制文件? 15. 给出数据库正常启动所经历的几种状态 ? 16. 哪个column可以用来区别V$...

    oracle数据库dba管理手册

    4.9.3 重建索引 94 4.10 物理条件的满足 95 第二部分 数据库管理 第5章 开发过程管理 97 5.1 成功三要素 97 5.2 培植过程 97 5.3 管理过程 98 5.3.1 定义环境 98 5.3.2 角色的定义 99 5.3.3 交付使用 100 5.3.4 ...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

    Oracle创建视图(View)

    视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的...

    oracle详解

    而GRANTS和INDEXES则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将INDEXES设为N,而GRANTS一般都是Y。例如:imp userid=test1/test1 file=expdat.dmp fromuser=...

    Oracle事例

    、查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper(\'&index_name\'); 11、创建序列 select * from user_sequences; create sequence SEQ_NAME start with 1000 maxvalue ...

    Oracle从入门到精通

    6、约束条件:............................................. 2.5.视图 (VIEW) ........................................ 2.6、序列:............................................... 2.7、索引:...............

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

    orcale常用命令

    非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行:...

    Toad 使用快速入门

    在schema browser的帮助下,可以方便的浏览数据库内部的各类数据库对象,比如表,索引,序列,存储过程等,而且可以方便的倒出DDL语句和进行各种修改,重建工作。定位到某一类对象上,这列对象允许的操作都会自动列...

    数据库工具 bdb v3.6 +界面预览 (dbbuilder )

    数据表,索引,约束,缺省值,触发器,视图,存储过程,函数以及数据表数据。 5,查询分析 数据库快速查询分析功能。可进行数据表数据查询,编辑及导出操作: A,提供专用的SQL编辑器。支持语法高亮,脚本预定义...

    数据库设计和部署软件BDB 个人版V2.6

    可迁移的数据对象包括: 数据表,索引,约束,缺省值,触发器,视图,存储过程,函数以及数据表数据。 <br>5,查询分析 数据库快速查询分析功能。可进行数据表数据查询,编辑及导出操作: A,提供专用...

    数据库设计和部署软件BDB 专业版V2.6

    可迁移的数据对象包括: 数据表,索引,约束,缺省值,触发器,视图,存储过程,函数以及数据表数据。 <br>5,查询分析 数据库快速查询分析功能。可进行数据表数据查询,编辑及导出操作: A,提供专用...

Global site tag (gtag.js) - Google Analytics