oracle 01408,Oracle主键约束、唯一键约束、唯一索引的区别

本文详细介绍了Oracle数据库中主键约束、唯一键约束和唯一索引的区别。主键约束会自动创建唯一索引且要求列值非空,而唯一键约束和唯一索引不要求列值非空。当约束失效时,隐式创建的唯一索引会被删除。相同的字段序列不能重复创建索引。
摘要由CSDN通过智能技术生成

一般,我们看到术语“索引”和“键”交换使用,但实际上这两个是不同的。索引是存储在数据库中的一个物理结构,键纯粹是一个逻辑概念。键代表创建来实施业务规则的完整性约束。索引和键的混淆通常是由于数据库使用索引来实施完整性约束。

接下来我们看看数据库中的主键约束、唯一键约束和唯一索引的区别。

SQL> select * from

v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise

Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 -

Production

CORE

11.2.0.1.0

Production

TNS for Linux: Version 11.2.0.1.0 -

Production

NLSRTL Version 11.2.0.1.0 -

Production

SQL> create table

test (

2 id int,

3 name

varchar2(20),

4 constraint

pk_test

primary

key(id))

5 tablespace

users;

Table created.

SQL> select

constraint_name, constraint_type from user_constraints;

CONSTRAINT_NAME

C

------------------------------

-

PK_TEST

P

在test表中,我们指定了ID列作为主键,Oracle数据库会自动创建一个同名的唯一索引:

SQL> select

index_name, index_type, uniqueness, tablespace_name

2 from

user_indexes

3 where

table_owner='SCOTT'

4 and table_name =

'TEST';

INDEX_NAME

INDEX_TYPE

UNIQUENES TABLESPACE_NAME

--------------------

-------------------- ---------

------------------------------

PK_TESTNORMAL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值