mysql联合唯一约束_MySQL中添加唯一约束和联合唯一约束
在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联合唯一约束_MySQL中添加唯一约束和联合唯一约束相关推荐
- mysql新加一列_如何使用mysql在建好的表中添加一列
本文主要向大家介绍了如何使用mysql在建好的表中添加一列,通过具体的代码向大家展示,希望对大家学习mysql有所帮助. mysql如果想在一个已经建好的表中添加一列 有这样的需求,已经建立的表,随着 ...
- mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天
mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...
- mysql 语句怎样修饰约束_MySQL中的约束,添加约束,删除约束,以及一些其他修饰讲解...
(1)创建数据库 CREATE DATABASES 数据库名; (2)选择数据库 USE 数据库名; (3)删除数据库 DROP DATAVBASE 数据库名; (4)创建表 CREATE TABLE ...
- mysql id自动增长_MySQL中的6种约束,你掌握了几种?
-点击上方"爱数据学习社"关注我们吧!- 在MySQL里,"约束"指的是对表中数据的一种限制约束,它能够确保数据库中数据的准确性和有效性. 比如有的数据是必填项 ...
- mysql添加临时索引_mysql 中添加索引的三种方法
在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...
- mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- mysql内嵌插入语句_MySQL中添加或插入语句(Insert)的几种使用方式
MySQL中添加或插入语句(Insert)的几种使用方式 1.INSERT 简写方式插入数据(不推荐) 1.先看一下表中有那些数据 2.使用Inset into 表名 values(值1,值2)进行插 ...
- 添加mysql组合主键_mysql怎么添加复合主键?
在mysql中可以在创建表时添加复合主键,其语法规则是"PRIMARY KEY [字段1,字段2,-,字段n]",表示主键由多个字段联合组成. 主键约束即在表中定义一个主键来唯一确 ...
- mysql复合主键_mysql怎么添加复合主键?
在mysql中可以在创建表时添加复合主键,其语法规则是"PRIMARY KEY [字段1,字段2,-,字段n]",表示主键由多个字段联合组成. 主键约束即在表中定义一个主键来唯一确 ...
最新文章
- 如何判断 Linux 是否运行在虚拟机上
- 怎样学习linux系统管理员,linux系统管理员学习笔记
- ASP.NET把DataTable转成XML文件的函数
- Py之chatterbot-corpus:python包之chatterbot-corpus包简介、安装、使用方法之详细攻略
- linux自动挂起什么意思,Linux中进行挂起(待机)的命令说明
- python 时间日期处理
- “极度郁闷,要求慰安”
- 从超大规模云服务提供商处学习效率
- Android 四大组件学习之ContentProvider二
- 下载Sonar-Runner
- matlab SVMtrain函数
- Justice 「未见系列 2」随夏而至,总有一款让你心动的配色!
- 网页版在线使用PS网站源码
- linux tar zcxf,tar/gzip/zip文件打包、压缩命令
- RN设置宽高100%
- 博士申请 | 香港中文大学(深圳)濮实老师招收分布式优化与机器学习全奖博士生...
- java-JDK11“ jstat -gc”中“ CGC”和“ CGCT”是什么意思?
- 【报错】arXiv上传文章出现XXX.sty not found
- 迷茫的时候找到了未来的方向
- 拼多多TOKEN独享方法