易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle 主键 \索引


在oracle中,我们创建一个主键,则同时自动创建了一个同名的唯一索引;删除主键,则主键约束和对应的唯一索引都删除了。这是我们经常见到的现象。
 
发出一个创建主键的sql,oracle其实执行了两步:创建主键约束、创建/关联 唯一索引。步骤是这样的:
创建主键约束时,检查该主键字段上是否已经存在唯一索引。若不存在,则自动创建同名唯一索引;若存在,则直接创建主键约束,并将该约束和已经存在的唯一索引对应上。
删除主键约束时,可以决定是否保留对应的索引;删除唯一索引时,若存在对应的主键约束,则不能删除。
 
总之,存在主键约束,则肯定存在与之对应的唯一索引,而存在唯一索引,不一定对应着有主键约束。
 
下面我们验证一下:
 
SQL> create table test_pri(a number(1), b number(1));
 
表已创建。
 
--1.创建主键,则自动创建同名唯一索引
--1.1创建主键,主键约束和唯一索引同时创建
SQL> alter table test_pri add constraint pk_test_pri_a primary key(a);
 
表已更改。
 
SQL> select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME
  2  from user_constraints where table_name = 'TEST_PRI';
 
CONSTRAINT_NAME   TABLE_NAME   INDEX_NAME  
----------------- ------------ -------------
PK_TEST_PRI_A     TEST_PRI     PK_TEST_PRI_A
 
SQL> select INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS
  2  from user_indexes where table_name = 'TEST_PRI';
 
INDEX_NAME       INDEX_TYPE   TABLE_NAME   UNIQUENES
---------------- ------------ ------------ ---------
PK_TEST_PRI_A    NORMAL       TEST_PRI     UNIQUE
 
--1.2 删除主键,主键约束和对应的唯一索引都删除了
SQL> alter table test_pri drop constraint pk_test_pri_a;
 
表已更改。
 
SQL> select CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME
  2  from user_constraints where table_name = 'TEST_PRI';
 
未选定行
 
SQL> select INDEX_NAME, INDEX_TYPE, TAB


相关文档:

oracle issue

Yes, sure ! You must be the local admin of this computer, and not a domain user.
Moreover, I'm afraid you cannot install it in a domain, maybe you should (just for testing purposes) try to install a standalone Windows system and try installing Oracle 10g on it.
You know, a RDBMS database server mu ......

如何修改Oracle默认用户密码有效期时间

如何修改Oracle默认用户密码有效期时间
1、查看用户的proifle是哪个,一般是default:
     sql>SELECT username,PROFILE from dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
     sql>  SELECT * from dba_profiles s WHERE 
   ......

ORACLE几个过滤条件的执行顺序

select distinct id
  from table t
 where rownum < 10
 order by t.id desc;
上述语句的过滤条件执行顺序 先where --->order by --->distinct
如果有group by的话 group by 在order by前面的 ......

oracle 存储过程的基本语法 及注意事项

oracle 存储过程的基本语法 及注意事项
oracle 存储过程的基本语法
1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
    参数1 IN NUMBER,
    参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
END 存储过程名字
2.SELECT INTO STATEMENT
  将selec ......

oracle中的savepoints是什么

什么是savepoint?
Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back.
给你个例子 
SQL> create table test (id number(7)); 
表已创建。 
SQL> insert into test values (3); 
已创建 1 行。 
SQL> savepoint a; 
保存 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号