精华内容
下载资源
问答
  • Oracle强制删除被使用中的索引

    千次阅读 2013-03-20 15:21:22
    2.查询表索引名称[code="sql"]select index_name from dba_...3.强制删除索引[code="sql"]drop index user.indexname force --”user“:索引所属数据库用户。“indexname”:第2步查询出...
    1.使用system用户登陆。
    2.查询表索引名称
    select index_name from dba_indexes where  table_name ='TAB_NAME'

    3.强制删除索引
    drop index user.indexname force --”user“:索引所属数据库用户。“indexname”:第2步查询出的索引名称。
    展开全文
  • 1、在删除索引时,提示ORA-02429:无法删除用于强制唯一/主键的索引,如下图所示: 2、主键唯一索引,不允许单独删除而保留主键约束,但是可以保留唯一索引单独删除主键约束。因此要想删除引唯一索引,只能先删除...

    1、在删除索引或主键时,提示ORA-02429:无法删除用于强制唯一/主键的索引,如下图所示:

    2、主键唯一索引,不允许单独删除而保留主键约束,但是可以保留唯一索引单独删除主键约束。因此要想删除引唯一索引,只能先删除主键约束,PK_V_M_RECORD_BASE为主键或索引名,执行如下命令:

    ALTER TABLE MEDICAL_RECORD DROP CONSTRAINT PK_V_M_RECORD_BASE

    3、然后在删除主键即可。

    展开全文
  • oracle新增、删除索引以及主键修改

    千次阅读 2020-03-03 17:19:28
    --根据索引名,查询表索引字段 select * from user_ind_columns where index_name='索引名'; --根据表名,查询一张表的索引 select * from user_indexes where table_name='表名'; --根据索引名,查询属于哪张表 ...
    --根据索引名,查询表索引字段
    select * from user_ind_columns where index_name='索引名';
    --根据表名,查询一张表的索引
    select * from user_indexes where table_name='表名';
    --根据索引名,查询属于哪张表
    select * from all_indexes where index_name ='INX_DATA_QUERY_DEF';
    

    一.oracle 表加索引

    首先,查看目前已经建立的索引

    select index_name from all_indexes where table_name = 'table1';
    

    2.接着,建立索引

    create index 索引名 on 表名(列名);
    
    
    create index table1_album_idx on table (aid);
    create index table1_user_idx on table (userid);
    

    3.再重复第一步,验证一下,是否成功

    二.oracle表删除索引

    相信不少人遇到过ORA-02429: cannot drop index used for enforcement of unique /primary key 这个错误,对应的中文提示“ORA-02429: 无法删除用于强制唯一/主键的索引”,其实从错误提示信息已经很明显了。下面还是用一个简单的例子述说一下该错误的来龙去脉。

    ORA-02429错误的原因是因为用户试图删除一个用于强制唯一/主键的索引,解决方法也很简单,删除对应的约束就会自动删除该索引。

    [oracle@DB-Server ~]$ oerr ora 2429

    02429, 00000, "cannot drop index used for enforcement of unique/primary key"

    // *Cause: user attempted to drop an index that is being used as the

    // enforcement mechanism for unique or primary key.

    // *Action: drop the constraint instead of the index.

    1:新建测试表TAB_TEST, 如下所示:

    CREATE TABLE TAB_TEST
    (
      JOB_ORDER_NO    VARCHAR2(20 BYTE),
      DIMM_ID         NUMBER,
      MRP_GROUP_CD    VARCHAR2(10 BYTE),
      ITEM_CAT        VARCHAR2(20 BYTE),
      REQUIRED_DATE   DATE,
      PURCHASED_BY    VARCHAR2(10 BYTE),
      USED_BY         VARCHAR2(10 BYTE),
      SUPPLIER_CD     VARCHAR2(10 BYTE)
    )

    2:添加主键约束,如下所示

    ALTER TABLE TAB_TEST
     ADD CONSTRAINT PK_TAB_TEST
      PRIMARY KEY
      (JOB_ORDER_NO, DIMM_ID, MRP_GROUP_CD, ITEM_CAT);

    3:查看测试表的索引信息

    SQL> SELECT INDEX_NAME FROM DBA_INDEXES WHERE TABLE_NAME='TAB_TEST';
     
    INDEX_NAME
    ------------------------------
    PK_TAB_TEST

    4:查看测试表的约束信息:

    SQL> SELECT CONSTRAINT_NAME FROM DBA_CONSTRAINTS WHERE TABLE_NAME='TAB_TEST';
     
    CONSTRAINT_NAME
    ------------------------------
    PK_TAB_TEST

    5:删除测试表的索引PK_TAB_TEST

    SQL> DROP INDEX PK_TAB_TEST;
    DROP INDEX PK_TAB_TEST
               *
    ERROR at line 1:
    ORA-02429: cannot drop index used for enforcement of unique/primary key

    解决方法:

    删除对应的约束就会自动删除该索引。而不是直接去删除该索引。很多菜鸟就会直接这样做!

    SQL> ALTER TABLE TAB_TEST DROP CONSTRAINT PK_TAB_TEST;
     
    Table altered.
     
    SQL> SELECT CONSTRAINT_NAME FROM DBA_CONSTRAINTS WHERE TABLE_NAME='CONSTRAINT_NAME';
     
    no rows selected
     
    SQL> SELECT INDEX_NAME FROM DBA_INDEXES WHERE TABLE_NAME='TAB_TEST';
     
    no rows selected
     
    SQL> 
     

    三.oracle主键修改&设置某一字段可以为null

    1.oracle主键修改

    1.1)首先查看需要修改的表的主键名,默认的情况下,数据库会自动分配

    select * from user_cons_columns where table_name='表名'

    注意表名可能需要大写,否则可能查不出来。

    1.2)删除主键约束

    alter table 表名 drop constraint 主键名(通过上一步查找出来)
    

    1.3)添加主键约束

    alter table 表名 add constraint 主键名 primary key(字段名1,字段名2...);
    

    主键名命名规则建议为pk_表名

    2.oracle设置字段可以为空

    alter table 表名 modify 字段名 null;
    
    展开全文
  • 第一步 删除表与索引之间的联系 ...第二步 执行删除索引语句 DROP INDEX PK_SPXGDITEM; 第三步 若要重新创建索引则执行 create unique index PK_SPXGDITEM on SPXGDITEM(JLBH,SP_ID,FDBH); ...
    • 第一步 删除表与索引之间的联系
      ALTER TABLE TABLENAME DROP CONSTRAINT PK_TABLENAME ;
    • 第二步 执行删除索引语句
      DROP INDEX PK_TABLENAME ;
    • 第三步 若要重新创建索引则执行
      create unique index PK_TABLENAME on TABLENAME (ID,NAME);
    展开全文
  • Oracle之函数索引

    千次阅读 2017-11-28 16:46:49
    Oracle之函数索引Oracle中,有一类特殊的索引,称为函数索引(Function-Based Indexes,FBI),它基于对表中列进行计算后的结果创建索引。函数索引在不修...
  • sql>droptablespace xxx ora-01549:表空间非空,请使用INCLUDING CONTENTS 选项   sql>droptablespace xxx INCLUDING CONTENTS and data...ora-02429:无法删除用于强制唯一/主键的索引。   sql>droptablespac
  • Oracle下重建索引

    2018-01-10 20:29:38
    索引重建:rebuild 方法一:(先删除后新建) DROP index ZEMESSAGE_BOX; create index ZEMESSAGE_BOX on ZEMESSAGE (BOX);   方法二: alter index ZEMESSAGE_PLATFORM rebuild
  • 备注:添加索引之后验证索引有效性: 执行1:EXPLAIN PLAN FOR select accouts, accrate, completeratio, def1, def10, def11, def12, def13, def14, def15, def16, def17, def18, def19, def2, def20, def3, def4,...
  • oracle 删除表空间错误 提示:ora-02429:无法删除用于强制唯一/主键的索引。 sql>drop tablespace ksdm ora-01549:表空间非空,请使用INCLUDING CONTENTS 选项 sql>drop tablespace ksdm INCLUDING ...
  • 目录 一、查询哪些会话锁死 二、杀掉对应的会话进程 三、备注: 一、查询哪些会话锁死 select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID ...alter system..
  • oracle索引

    2015-08-18 10:58:47
    就像书的索引可以帮助我们更快速的查找信息一样,Oracle中 –的索引也提供了一种更快地访问表数据的途径。—索引的特点— –应该创建索引 –1)在经常需要搜索的列上,可以加快搜索的速度; –2)在作为主键的列...
  • 一旦建立了索引,在用户表中建立、更改和删除数据库时, Oracle就自动地维护索引。创建索引时,下列准则将帮助用户做出决定:  1) 索引应该在SQL语句的"where"或"and"部分涉及的表列(也称谓词...
  • oracle 删除表空间错误 提示:ora-02429:无法删除用于强制唯一/主键的索引。 sql>drop tablespace ksdm ora-01549:表空间非空,请使用INCLUDING CONTENTS 选项 sql>drop tablespace ksdm INCLUDING ...
  • oracle 主键 /索引

    2010-05-26 18:41:00
    删除主键,则主键约束和对应的唯一索引删除了。这是我们经常见到的现象。 发出一个创建主键的sql,oracle其实执行了两步:创建主键约束、创建/关联 唯一索引。步骤是这样的:创建主键约束时,检查该主键字段上...
  • Oracle索引

    千次阅读 2014-03-15 12:59:37
    创建索引一般有以下两个目的:维护被索引列的唯一性和提供快速访问表中数据的策略。 索引的特点 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这...
  • oracle 不走索引的原因

    千次阅读 2017-03-10 11:42:07
    oracle 不走索引的原因 2013-02-01 13:46 9098人阅读 评论(0) 收藏 举报  分类: oracle(27)  create table tb2 as select * from emp; alter table tb2 modify empno number(4) not ...
  • Oracle 索引

    2014-09-10 09:42:37
    一旦建立了索引,在用户表中建立、更改和删除数据库时, Oracle就自动地维护索引。创建索引时,下列准则将帮助用户做出决定:  1) 索引应该在SQL语句的"where"或"and"部分涉及的表列(也称谓词)被建立。假如 ...
  • Oracle序列和索引

    2017-07-09 15:48:47
    8.修改、删除索引。 修改索引: 1 alter   index   ename_index rename  to   ei;  更改索引名,其他修改格式都是如此。 ...
  • Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行...
  • Oracle-索引

    2017-03-01 17:07:23
    索引的创建语法(Oracle):  CREATE [ UNIUQE | BITMAP ] INDEX .  ON .  ( | ASC | DESC,  | ASC | DESC,... )  TABLESPACE  STORAGE  LOGGING | NOLOGGING  COMPUTE STATISTICS  
  • 本文介绍了SQL Server和Oracle索引及常见的索引类型,希望通过比较的方法,加深对二种数据库索引应用的理解。
  • oracle中的索引和约束

    2013-06-28 14:01:12
    1.创建一般的索引 create index ename_idx on emp(ename); 2.查询用户下索引信息 select index_name,index_type,table_name,uniqueness from user_indexes; 3.查询索引所在列的信息 select index_name,table_...
  • Oracle 索引 详解

    2014-09-05 16:58:57
    Oracle 索引 详解  一.索引介绍  1.1 索引的创建语法:  CREATE UNIUQE | BITMAP INDEX .  ON .  ( | ASC | DESC,  | ASC | DESC,...)  TABLESPACE   STORAGE  ...
  • Oracle 索引详解

    万次阅读 2013-12-11 14:50:29
    Oracle 索引详解 一.索引介绍  1.1 索引的创建语法:  CREATE UNIUQE | BITMAP INDEX .  ON .  ( | ASC | DESC,  | ASC | DESC,...)  TABLESPACE   STORAGE   LOGGING | ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,623
精华内容 10,249
关键字:

oracle强制删除索引