MySql -- unique唯一约束
3、UNIQUE 约束
约束唯一标识数据库表中的每条记录。
创建一张测试表
CREATE TABLE `test`.`info`(
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`idCard` VARCHAR(18) UNIQUE NOT NULL, -- 直接在字段上添加唯一约束
`mobile` VARCHAR(11),
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_estonian_ci;
添加唯一约束UNIQUE
/*
除了上面的添加唯一约束的方法以外,
如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,写法如下:
uc_idCard约束由mobile和idCard组合成唯一约束。
*/
CREATE TABLE `test`.`info`(
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`idCard` VARCHAR(18) UNIQUE,
`mobile` VARCHAR(11),
PRIMARY KEY (`id`),
CONSTRAINT `uc_idCard` UNIQUE (`mobile`,`idCard`)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_estonian_ci;
如果在存在表的情况下,添加唯一约束
-- 无名字的约束
ALTER TABLE `info` ADD UNIQUE (`idCard`);
-- uc_idCard约束由mobile和idCard组合成唯一约束
ALTER TABLE `info` ADD CONSTRAINT `uc_idCard` UNIQUE (`mobile`,`idCard`);
撤销 UNIQUE 约束
-- 移除指定字段的约束
ALTER TABLE `info` DROP INDEX `idCard`; -- 移除有名字的约束
ALTER TABLE `info` DROP INDEX `uc_idCard`;
向 UNIQUE 约束添加数据
-- 添加一条基础数据
INSERT INTO `info`(`idCard`,`mobile`) VALUES('',''); -- 添加一条idCard重复的记录
INSERT INTO `info`(`idCard`,`mobile`) VALUES('',''); 结果:
错误代码: 1062
DUPLICATE entry '' FOR KEY 'idCard'; -- 在唯一约束中添加 NULL
INSERT INTO `info`(`idCard`,`mobile`) VALUES(NULL,'');
-- 再次添加NULL
INSERT INTO `info`(`idCard`,`mobile`) VALUES(NULL,''); 结果:
id idCard mobile
-------------------------
6 (NULL) 1111
7 (NULL) 2222
原因:因为 NULL != NULL
MySql -- unique唯一约束的更多相关文章
- mysql中唯一约束用法
以前比较naive,有次同事一定要在表里建唯一约束的时候,我就很纳闷为啥非要在db层面做限制,在自己的业务代码里做啊,就是说入库的时候先查一遍有没有,没有记录的情况再准许入库. 后来发现如果只是自己处 ...
- MYSQL中唯一约束和唯一索引的区别
1.唯一约束和唯一索引,都可以实现列数据的唯一,列值可以有null.2.创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引.唯一约束是通过唯一索引来实现数据的唯一. ...
- [mysql] 删除唯一约束unique
alter table ot_document drop index title
- MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束
/* MySQL进阶13 常见六大约束: 1.not null 非空 2.default :默认值,用于保证该字段的默认值 ; 比如年龄:1900-10-10 3.primary key : 主键,用 ...
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引
一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...
- MySQL中的约束,添加约束,删除约束,以及其他修饰
一.NOT NULL(非空约束)添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER T ...
- mysql语句之约束语句
约束语句: not null 非空 default 默认约束语句 unique 唯一约束语句 primary 主键 = 唯一 + 非空 auto_increment 自动增长 foreign key( ...
- Sql Server约束的学习一(主键约束、外键约束、唯一约束)
一.约束的分类 1.实体约束 实体约束是关于行的,比如某一行出现的值不允许出现在其他行,例如主键约束. 2.域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如检查约束. 3.参照完整性约束 ...
- day38:MySQL数据库之约束&索引&外键&存储引擎
目录 part1:数据类型 part2:约束 part3:主键索引 PRI &唯一索引 UNI &普通索引 MUL part4:外键:foreign key part5:在外键中设置联 ...
随机推荐
- mui退出登录
html部分: <button id='promptBtn' type="button" class="mui-btn mui-btn-block mui-btn- ...
- 软件分享大会之Bonny使用感想
近日大一期末临近,处在计算机大类专业的我也即将面临专业分流.在软件工程这个新的开始前,未来的系主任组织了一次软件分享会,通过大二.大三学生向大一的我们的作品展示,提前让我们了解自制软件如现流行软件的不 ...
- 【Unity|C#】基础篇(1)——基础入门
[学习资料] <C#图解教程>(第2~12章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baid ...
- 谷歌浏览器chrome应用商店无法打开的解决方法
解决办法:谷歌访问助手 谷歌访问助手是一款免费的谷歌服务代理插件,不用配置就可以正常访问谷歌的大部分服务,而且速度也很快.下载地址:http://www.cnplugins.com/advsearch ...
- V-Box
Not ) (VERR_NEM_NOT_AVAILABLE). VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX ...
- H5_0019:JS中定义json结构
"7HKm": function(e, a, d) { "use strict"; Object ...
- yii2 环境切换(开发,正式)
方式一,在web中index修改 开发环境配置 web目录index.php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('Y ...
- 实用沙盒工具 —— VMware Workstation15安装教程
一:简介 VMware Workstation(中文名"威睿工作站")是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发.测试 .部署新 ...
- 修改或忘记MySQL密码
一.创建/修改MySQL密码 刚装好只能允许一个本地账户root@localhost访问 刚开始默认无密码 新增密码root,输入此命令后回车再回车即可 修改密码,输入此命令后回车,输入原密码后回车即 ...
- windows下安装配置subline+Markdown
安装环境:win10 64bit 1. 安装subline3 subline : http://www.sublimetextcn.com/ 直接下载安装,不用激活(dao版,慎用) 2. 安装Ma ...