1 Fork me on GitHub

28. SQL--unique:唯一约束

1. 前言

unique 约束也称“唯一约束”,设置了 unique 约束的字段,每条记录的值都必须是唯一的,因此 unique 约束可以防止两条记录在某个字段上出现重复值。例如在 customers 表中,要防止两个或者多个顾客出现相同的姓名。

unique 可以约束表的一个字段,也可以约束多个字段。此外,设置了 unique 约束的字段可以出现 null 值。
unique 和 primary key 的区别
unique(唯一约束)和 primary key(主键)非常相似,但是 unique 允许字段中出现一次 null 值,而 primary key 不允许出现 null 值,因为可以认为:

primary key = unique +  not null
  • 一张表可以包含多个 UNIQUE 字段,但是只能有一个主键。

2. 示例

下面的 SQL 语句将创建一个名为 website 的新表,该表包含七个字段,其中 alexa 被设置为 UNIQUE,因此任何网站在全球的排名都必须不同。

create table website (
    id      int              not null   auto_increment,
    name    varchar(20)      not null,
    url     varchar(30),
    age     tinyint unsigned not null,
    alexa   int unsigned     not null   unique,
    uv      float                       default '0',
    country char(3)          not null,
    primary key (`id`)
);

如果已经创建了 website 表,则可以通过 alter table 语句将 unique 约束添加到 alexa 字段,代码如下:

alter table website
modify alexa int unsigned not null unique;

如果您希望为多个字段添加 unique 约束,则可使用下面的语法:

alter table website
add constraint myuniqueconstraint unique(alexa, url);

3. 删除 nnique 约束

可以使用下面的 sql 语句来删除 unique 约束:

alter table website
drop constraint myuniqueconstraint;

如果您使用的是 MySQL,那么应该修改为如下的语句:

alter table website
drop index myuniqueconstraint;

 

posted @ 2022-08-31 17:16  v_jjling  阅读(468)  评论(0编辑  收藏  举报
AmazingCounters.com