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:在外键中设置联 ...
随机推荐
- linux 多并发 连接限制修改
1. 修改 ulimit -a 查看 open files 表示单个用户能打开的最大句柄 如果开发的高并发当个进程打开的句柄需要很大. 修改/etc/security/limits.conf 里面有 ...
- Docker入门(windows安装)
Docker入门(安装)Docker是一种轻量级容器技术,实际中直接运行在当前操作系统(Linux)上,而不是虚拟机中.PaaS提供了存储,数据库,网络,负载均衡,自动扩展等功能,Docker云平台就 ...
- jQuery笔记(六)jQuery之Ajax
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对 ...
- cat基础用法
Linux中的cat命令连接文件并打印到标准输出设备上(通常是shell).cat的最常见用法之一是显示文件,还可以即时创建文件,并可以直接在终端上进行基本编辑. 创建文件 使用cat命令创建文件,请 ...
- Spark学习之路 (六)Spark Transformation和Action[转]
Transformation算子 基本的初始化 (1)java static SparkConf conf = null; static JavaSparkContext sc = null; sta ...
- 通过编写Java代码让Jvm崩溃
在书上看到一个作者提出一个问题"怎样通过编写Java代码让Jvm崩溃",我看了之后也不懂.带着问题查了一下,百度知道里面有这样一个答案: 1 package jvm; 2 3 pu ...
- php外挂python脚本抓取ajax数据
之前我写过一遍php外挂python脚本处理视频的文章.今天和大家分享下php外挂python实现输入关键字搜索的脚本 首先我们先来分析一波网站: http://www.dzdpw.com/s.php ...
- ArcMap 导出Table数据到Excel
- sql server针对字符串型数字排序(针对此字符串的长度不一致)
对于不规则的字符串数字排序,无法按照数字大的大小排序的原因是,字符串数字在数据库中按照ASCII码排序,从字符的第一个数字对比,首先就会将为首个数字相同的排在一起,在从这些字符串里面对比第二个数字,如 ...
- c语言中 char* 和 unsigned char* 的区别浅析(转)
原文:https://blog.csdn.net/guotianqing/article/details/77341657 背景最近在项目中遇到了一个编译警告,是因为定义的变量为char[],而在使用 ...