using index

using index可以让你在创建主键、唯一性约束的时候使用指定的索引或创建索引、或修改索引的存储结构,而不用oracle默认创建的索引
从Oracle9i开始,主键创建时的索引和唯一性约束可以在建表时独立定义。
  随后,约束可以被独立drop,而索引可以保留。这是Oracle9i中对于索引增强的几个特性之一。
  SQL> CREATE TABLE employees
   2 (
   3 empno NUMBER(6),
   4 NAME VARCHAR2(30),
   5 dept_no NUMBER(2),
   6 CONSTRAINT emp_pk PRIMARY KEY(empno)
   7 USING INDEX
   8 (CREATE UNIQUE INDEX emp_pk_idx ON employees(empno))
   9 );
  Table created.
  SQL> select index_name,UNIQUENESS from user_indexes
   2 where table_name=upper('employees');
  INDEX_NAME UNIQUENES
  ------------------------------ ---------
  EMP_PK_IDX UNIQUE
  SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE,INDEX_NAME from user_constraints
   2 where table_name=upper('employees');
  CONSTRAINT_NAME C INDEX_NAME
  ------------------------------ - ------------------------------
  EMP_PK P EMP_PK_IDX
  Oracle9i中新增的命令可以用以DROP约束保留索引.
  ALTER TABLE employees DROP PRIMARY KEY KEEP INDEX;
  SQL> ALTER TABLE employees DROP PRIMARY KEY KEEP INDEX;
  Table altered.
  SQL> select index_name,UNIQUENESS from user_indexes
   2 where table_name=upper('employees');
  INDEX_NAME UNIQUENES
  ------------------------------ ---------
  EMP_PK_IDX UNIQUE
  对于隐式创建的主键索引,同样可以使用此种方式保留:
  SQL> CREATE TABLE employees
   2 (
   3 empno NUMBER(6) primary key,
   4 NAME VARCHAR2(30),
   5 dept_no NUMBER(2)
   6 );
  Table created.
  SQL> ALTER TABLE employees DROP PRIMARY KEY KEEP INDEX;
  Table altered.
  SQL> select index_name,UNIQUENESS from user_indexes
   2 where table_name=upper('employees');
  INDEX_NAME UNIQUENES
  ------------------------------ ---------
  SYS_C004180 UNIQUE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值