跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Oracle里的唯一性约束(UNIQUE)怎么用?

各位编程小伙伴,你们有没有遇到过这样的问题:如何在Oracle数据库中创建、使用、禁用和删除唯一性约束呢?今天,我就来跟大家详细聊聊这个话题。

首先,什么是唯一性约束呢?简单来说,它就是指表中某个字段或者多个字段的组合,可以唯一地标识一条记录。在Oracle中,唯一性约束可以包含空值,但最多只能有32列。

接下来,我们来看看唯一性约束和主键的区别。主键是不能包含空值的,而唯一性约束则可以。而且,Oracle中是不允许在同一个列上既创建主键又创建唯一性约束的。

### 创建唯一性约束

创建表时定义唯一性约束

创建表时定义唯一性约束的语法如下:

CREATE TABLE table_name
(
    column1 datatype null/not null,
    column2 datatype null/not null,
    ...
    CONSTRAINT constraint_name UNIQUE (column1, column2,...,column_n)
);

例如,创建一个供应商表,其中供应商ID是唯一的:

create table tb_supplier
(
  supplier_id          number not null
 ,supplier_name        varchar2(50)
 ,contact_name         varchar2(50)
 ,CONSTRAINT tb_supplier_u1 UNIQUE (supplier_id)
);

### 使用ALTER TABLE语法创建唯一性约束

语法

ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE (column1, column2, ... , column_n);

例如,给供应商表添加一个基于供应商ID和名称的唯一性约束:

alter table tb_products
add constraint  tb_products_u1
unique (product_id,product_name);

### 禁用唯一性约束

语法

ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;

例如,禁用供应商表上的唯一性约束:

ALTER TABLE tb_supplier
DISABLE CONSTRAINT  tb_supplier_u1;

### 使用唯一性约束

语法

ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;

例如,启用供应商表上的唯一性约束:

ALTER TABLE tb_supplier
ENABLE CONSTRAINT tb_supplier_u1;

### 删除唯一性约束

语法

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

例如,删除供应商表上的唯一性约束:

ALTER TABLE tb_supplier DROP CONSTRAINT tb_supplier_u1;

以上就是关于Oracle中唯一性约束的用法详解。希望这篇文章能帮助到你们。如果你还有其他问题,欢迎在评论区留言讨论。我是林译川,关注新派编程网(www.xjpbg.com),了解更多编程知识。

相关文章