-
Oracle | PL/SQL唯一索引(Unique Constraint)用法
1 目标
用示例演示如何创建、删除、禁用和使用唯一性约束。
2 什么是唯一性约束?
唯一性约束指表中一个字段或者多个字段联合起来能够唯一标识一条记录的约束。联合字段中,可以包含空值。
注:在Oracle中,唯一性约束最多可以有32列。
唯一性约束可以在创建表时或使用ALTER TABLE语句创建。
3 唯一性约束和主键的区别
4 创建表时定义唯一性约束
1)语法:
1234567CREATE
TABLE
table_name
(
column1 datatype
null
/
not
null
,
column2 datatype
null
/
not
null
,
...
CONSTRAINT
constraint_name
UNIQUE
(column1, column2,...,column_n)
);
2)基于单列的唯一性约束示例:
1234567create
table
tb_supplier
(
supplier_id number
not
null
,supplier_name varchar2(50)
,contact_name varchar2(50)
,
CONSTRAINT
tb_supplier_u1
UNIQUE
(supplier_id)
--创建表时创建唯一性约束
);
3)基于多列的唯一性约束示例:
12345678create
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语法创建唯一性约束
1)语法
123ALTER
TABLE
table_name
ADD
CONSTRAINT
constraint_name
UNIQUE
(column1, column2, ... , column_n);
2)示例准备,先创建表
1234567891011121314151617drop
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)基于单列的唯一性约束
123alter
table
tb_supplier
add
constraint
tb_supplier_u1
unique
(supplier_id);
4)基于多列的唯一性约束
123alter
table
tb_products
add
constraint
tb_products_u1
unique
(product_id,product_name);
6 禁用唯一性约束
1)语法:
12ALTER
TABLE
table_name
DISABLE
CONSTRAINT
constraint_name;
2)示例:
12ALTER
TABLE
tb_supplier
DISABLE
CONSTRAINT
tb_supplier_u1;
7 使用唯一性约束
1)语法:
12ALTER
TABLE
table_name
ENABLE
CONSTRAINT
constraint_name;
2)示例:
12ALTER
TABLE
tb_supplier
ENABLE
CONSTRAINT
tb_supplier_u1;
8 删除唯一性约束
1)语法:
12ALTER
TABLE
table_name
DROP
CONSTRAINT
constraint_name;
2)示例:
12ALTER
TABLE
tb_supplier
DROP
CONSTRAINT
tb_supplier_u1;
ALTER
TABLE
tb_products
DROP
CONSTRAINT
tb_products_u1;
Oracle之唯一性约束(UNIQUEConstraint)用法详解
最新推荐文章于 2024-07-21 08:49:25 发布