Oracle之唯⼀性约束(UNIQUEConstraint)⽤法详解
| PL/SQL唯⼀索引(Unique Constraint)⽤法
1 ⽬标
⽤⽰例演⽰如何创建、删除、禁⽤和使⽤唯⼀性约束。
2 什么是唯⼀性约束?
唯⼀性约束指表中⼀个字段或者多个字段联合起来能够唯⼀标识⼀条记录的约束。联合字段中,可以包含空值。
注:在Oracle中,唯⼀性约束最多可以有32列。
唯⼀性约束可以在创建表时或使⽤ALTER TABLE语句创建。
3 唯⼀性约束和主键的区别
主键(Primary Key):所有组成主键的列都不能包含空值。唯⼀性约束(Unique Constraint):如果唯⼀性约束由多列组成,其中的部分列可以包含空值。Oracle中不容许在相同列上既创建主键⼜创建唯⼀
性约束。
4 创建表时定义唯⼀性约束
1)语法:
1 2 3 4 5 6 7CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
...
CONSTRAINT constraint_name UNIQUE(column1, column2,...,column_n) );
2)基于单列的唯⼀性约束⽰例:
1 2 3 4 5 6 7create table tb_supplier
(
supplier_id          number not null
,supplier_name        varchar2(50)
,contact_name        varchar2(50)
,CONSTRAINT tb_supplier_u1 UNIQUE(supplier_id)--创建表时创建唯⼀性约束);
3)基于多列的唯⼀性约束⽰例:
1 2 3 4 5 6 7 8create table tb_products
(
product_id        number not null,
product_name      number not null,
product_type      varchar2(50),
supplier_id      number,
CONSTRAINT tb_products_u1 UNIQUE(product_id, product_name) --定义复合唯⼀性约束);
5 使⽤ALTER TABLE语法创建唯⼀性约束
2 3ADD CONSTRAINT constraint_name UNIQUE(column1, column2, ... , column_n);
2)⽰例准备,先创建表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17drop table tb_supplier;
drop table tb_products;
create table tb_supplier
(
supplier_id          number not null ,supplier_name        varchar2(50) ,contact_name        varchar2(50) );
create table tb_products
(
product_id        number not null, product_name      number not null, product_type      varchar2(50), supplier_id      number
);
3)基于单列的唯⼀性约束
1 2 3alter table tb_supplier
add constraint tb_supplier_u1 unique(supplier_id);
4)基于多列的唯⼀性约束
1 2 3alter table tb_products
add constraint tb_products_u1 unique(product_id,product_name);
创建唯一约束sql语句6 禁⽤唯⼀性约束1)语法:
1 2ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;
2)⽰例:
1 2ALTER TABLE tb_supplier
DISABLE CONSTRAINT tb_supplier_u1;
7 使⽤唯⼀性约束1)语法:
1 2ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;
2ENABLE CONSTRAINT tb_supplier_u1;
8 删除唯⼀性约束
1)语法:
1 2ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
2)⽰例:
1 2ALTER TABLE tb_supplier DROP CONSTRAINT tb_supplier_u1; ALTER TABLE tb_products DROP CONSTRAINT tb_products_u1;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。