在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束。

一、单列唯一约束

在一列上添加唯一约束,主要是让该列在表中只能有唯一的一行,例如注册邮箱时的邮箱名、手机号等信息,相关操作如下:

1.建表时加上唯一性约束:

CREATE TABLE `t_user` (
    `Id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(18) NOT NULL unique, 
    `password` varchar(18) NOT NULL, 
    PRIMARY KEY (`Id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;

2.给已经建好的表加上唯一性约束:

ALTER TABLE `t_user` ADD unique(`username`);

或者:

create unique index UserNameIndex on 't_user' ('username');

二、多列联合唯一约束

如果业务中要求两个字符联合起了是唯一的,比如“地址”+“名称”是唯一的,这就需要对两列,甚至多列添加联合唯一约束,具体命令如下:

1.确认表结构

mysql> show create table jw_resource;

FIELD          TYPE          COLLATION       NULL    KEY     DEFAULT  Extra           PRIVILEGES            COMMENT
-------------  ------------  --------------  ------  ------  -------  --------------  --------------------  -------
id             BIGINT(20)    (NULL)          NO      PRI     (NULL)   AUTO_INCREMENT  SELECT,INSERT,UPDATE         
resource_name  VARCHAR(128)  gbk_chinese_ci  YES             (NULL)                   SELECT,INSERT,UPDATE         
resource_type  TINYINT(4)    (NULL)          YES             (NULL)                   SELECT,INSERT,UPDATE

2.给resource_name和resource_type添加联合唯一约束:

mysql> show index from jw_resource;

mysql> ALTER TABLE jw_resource
ADD UNIQUE KEY(resource_name, resource_type);

3.确认表结构添加约束后结果:

mysql>  show create table jw_resource;
CREATE TABLE `jw_resource` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
  `resource_name` VARCHAR(128) DEFAULT NULL,
  `resource_type` TINYINT(4) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `resource_name` (`resource_name`,`resource_type`)
) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk;

mysql> show index from jw_resource;

注意:唯一键约束添加后,在建表的元数据中,默认的唯一键约束名称为第一列的名称。

4.添加约束后,进行插入测试效果:

msyql> INSERT INTO `jw_resource`(`resource_name`,'resource_type') values('aa','11');

msyql> INSERT INTO `jw_resource`(`resource_name`,'resource_type') values('aa','22');

msyql> INSERT INTO `jw_resource`(`resource_name`,'resource_type') values('bb','11');

msyql> INSERT INTO `jw_resource`(`resource_name`,'resource_type') values('aa','11');

5.删除唯一约束
mysql> ALTER TABLE jw_resource DROP INDEX `resource_name`;

mysql> show index from jw_resource;

注意:唯一键约束添加后,实际上建立了一个索引,将该索引删除后,就等于删除了联合唯一约束。

MySQL中添加唯一约束和联合唯一约束相关推荐

  1. MySQL添加唯一约束和联合唯一约束(建表后添加)

    MySQL:添加唯一约束和联合唯一约束 在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束. 单列唯一约束 在一列上添加唯一约 ...

  2. mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  3. mysql 中添加索引的三种方法(一)

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  4. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  5. 日期加星期存入mysql_在MySQL中添加两个星期的日期?

    要在MySQL中添加两个星期的日期,请使用DATE_ADD()-insert into yourTableName(yourColumnName) values(date_add(now(),inte ...

  6. MySql中添加用户/删除用户

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  7. MySQL中添加新字段

    © Ptw-cwl 要在MySQL中添加新字段,您可以使用ALTER TABLE语句. 以下是添加新字段的基本语法: ALTER TABLE table_name ADD column_name da ...

  8. MySQL中添加或插入语句(Insert)的几种使用方式

    1.各大培训机构,价格10万的视频 Java架构师视频免费送 2.各种电子书籍经典Java书籍免费送 3.关注下方我的公众号进行免费获取 MySQL中添加或插入语句(Insert)的几种使用方式 1. ...

  9. mysql联合唯一约束_MySQL中添加唯一约束和联合唯一约束

    在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束. 一.单列唯一约束 在一列上添加唯一约束,主要是让该列在表中只能有唯一的一 ...

最新文章

  1. 香港商务及经济发展局长:看好物联网发展
  2. 【动态规划】不信看完你还不懂动态规划
  3. 解决安卓模拟器没有网络的问题,刚开的做RN的我遇见这个问题真很头疼,所以希望看到我这篇文章能够解决。
  4. linux prel安装_Linux下Perl的安装(转)
  5. 一个有关fstream类的bug
  6. 19 FI配置-财务会计-定义销售/采购税代码
  7. php日志缓存,php – Symfony和Docker – 缓存和日志目录权...
  8. 音视频基础概念与流程
  9. AD制作gerber文件详细步骤
  10. 百度导航怎么不显示服务器,百度地图的导航设置中选择在线优先还是离线优先?...
  11. 中小型、创业型教育机构如何开拓线上市场?
  12. 三种嵌入式操作系统比较和分析
  13. 如何合并多个excel表
  14. 简智音科技:出色的抖音短视频需要以下几款辅助软件!
  15. 《清平乐词》三篇——李白
  16. wps打开服务器文件很慢,WPS开启很慢怎么办加速方法
  17. I Can See You 远程控制软件最新下载地址(含所有设计文档)
  18. 深度学习、目标检测情景中常见的模型评测指标
  19. 怎么找电脑服务器文档,电脑服务器地址怎么找
  20. 结巴分词关键词相似度_中文文本相似度计算工具集

热门文章

  1. 初学ARM的个人心得
  2. 广工计算机学院男女比例,广东高校新生数据大揭秘,哪所大学男女比例最大
  3. Google卫星影像免费下载!来看这些软件
  4. 如何创建一颗“山楂树”
  5. JS实现番茄钟倒计时
  6. 保险丝(熔断器)基本概述
  7. HDU 4973 A simple simulation problem 线段树
  8. java解压报错java.io.IOException: failed to skip current tar entry
  9. 可怜的80后——最具牺牲精神的一代
  10. puppy linux4,发行版:Puppy Linux 4.00发布