一、单列唯一约束

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

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 唯一约束_Mysql 唯一性约束添加相关推荐

  1. mysql中ak替换键_数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束...

    数据库:唯一性约束_alternate key(替换键) mySQL Oracle 数据库 ak 唯一性约束 数据库:唯一性约束 所谓唯一性约束(unique constraint)不过是数据表内替代 ...

  2. mysql主键约束和唯一性约束

    主键约束和唯一性约束都是索引,它们的区别是: 主键字段可以确保唯一性,但主键字段不能为NULL. 唯一性约束可以确保唯一性,但唯一性约束的字段可以为NULL 唯一性约束对含有NULL的记录不起作用,即 ...

  3. 约束——非空约束和唯一性约束

    1.什么是约束? 约束对应的英语单词:constraint 在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的 完整性.有效性!!!约束的作用就是为了保证:表中的数据有效!! 1. ...

  4. 【MySQL8.0学习笔记】约束:主键约束、自增长约束、非空约束、唯一性约束、默认约束与零填充约束

    本文对MySQL数据库的约束相关知识进行了归纳总结,包括主键约束.自增长约束.非空约束.唯一性约束.默认约束与零填充约束. 本专栏长期更新,敬请关注. 文章目录 1 MySQL约束简介 2 主键约束 ...

  5. mysql中主键约束和唯一约束的区别_主键约束和唯一性约束的区别

    1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...

  6. 主键约束、唯一性约束、唯一索引

    1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...

  7. SQL Server2008创建约束图解 唯一性约束

    SQL Server2008创建约束图解 复习一下数据库的约束 机房收费系统个人重构版开始了,但在设计数据库时遇到了写小麻烦,主要是数据库中约束的应用,以前在学习数据库时进行了总结,在刚开始学习时使用 ...

  8. 主键约束和唯一性约束的区别

    主键必然是唯一且不为空,但是唯一不一定是主键,而且主键只能有一个,但是唯一约束仅仅是为了保持某些列具有唯一性而已.所以可以有多列 一张表里只能有一个主键约束,可以有多个唯一约束 主键约束的字段不能为n ...

  9. mysql给表加外键约束_MySQL为表添加外键约束

    为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...

最新文章

  1. docker 导入镜像_官方下一代Docker镜像构建神器 -- BuildKit
  2. python汉字作为变量_在Python3x中不能使用汉字作为变量名。()
  3. java buffer 记事本_Java实现记事本|IO流/GUI
  4. JAVA学习日志(7-1-继承)
  5. wav2midi 音乐旋律提取算法 附可执行demo
  6. 组件文件已损坏或android内部模块,android - Android Q更新后,模块化系统组件在托管配置文件中不可用 - 堆栈内存溢出...
  7. 阿里云研究员叔同:云原生是企业数字创新的最短路径
  8. Python监视域名对应IP地址变化情况
  9. ssis t-sql返回值
  10. 上层应用开发是否真的没有底层开发有前途?
  11. 中国非制式爆炸物薄膜传感器研究取得进展
  12. CSDN看不见博主博客的评论_解决办法(亲测有效奥)
  13. jdbc连接mysql数据库,设置字符集编码
  14. 【Arduino+ESP32专题】PlatformIO串口监视器的默认波特率修改
  15. Nuxt学习(vue项目移植)
  16. 【Linux 用户和组】基础概念
  17. 傅里叶变换的完美总结【完整版】
  18. 2015年第一季度总结
  19. 【基金量化研究系列】基金绩效归因模型——Brinson多期归因模型
  20. GreenPlum--GPkafka使用教程

热门文章

  1. 你必需知道的5个开源游戏引擎
  2. 论文答辩问题准备(学生水平,自己准备用的,不喜勿喷)
  3. python3类型转换
  4. 【uni-app】uni-app实现聊天页面功能——功能篇(下)
  5. 亲测有效的清华源使用教程
  6. mysql table plugin,MySql报错Table mysql.plugin doesn’t exist的解决方法
  7. docker创建容器一直restart解决
  8. CMake问题:The CXX compiler identification is unknown
  9. 秋高气爽,静笃九月禅宗
  10. android+动态模糊效果,Android 动态高斯模糊效果教程