暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于主键和唯一约束的显示索引控制

原创 eygle 2006-02-27
982

从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 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论