来自:  http://blog.csdn.net/yumushui/article/details/38960619

一、单列唯一约束

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

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中的约束,添加约束,删除约束,以及一些其他修饰

    创建数据库: CREATE DATABASES 数据库名: 选择数据库: USE 数据库名: 删除数据库: DROP DATAVBASE 数据库名: 创建表: CREATE TABLE IF NOT ...

  2. MySQL中的约束,添加约束,删除约束,以及其他修饰

    一.NOT NULL(非空约束)添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER T ...

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

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

  4. MySQL 表字段唯一性约束设置方法unique

    1. 建表时加上唯一性约束 CREATE TABLE `t_user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, -- 自增 `username` varchar ...

  5. mysql字段约束

    为了确保数据的完整性和唯⼀性,关系型数 据库通过约束机制来实现目. 一. unique 唯一性约束    : 值不可重复: 二. not null    非空约束    : 值不可为空: 三. def ...

  6. Learning-MySQL【4】:表的操作管理和 MySQL 的约束控制

    一.表的操作 1.表的基本概念 数据库与表之间的关系:数据库是由各种数据表组成的,数据表是数据库中最重要的对象,用来存储和操作数据的逻辑结构. 表由列和行组成,列是表数据的描述,行是表数据的实例. 表 ...

  7. 2-16 MySQL字段约束-索引-外键

    一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) ...

  8. mysql的约束

    SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). (1)NOT NULL约 ...

  9. [转]mysql的约束

    转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constr ...

随机推荐

  1. spring initializr 创建项目时,依赖对应的 artifactId

    选择各个依赖时,对应的 artifactId 选择的依赖 artifactId名字 不选择依赖,默认包含的artifactId spring-boot-starter.spring-boot-star ...

  2. POJ1734无向图求最小环

    题目:http://poj.org/problem?id=1734 方法有点像floyd.若与k直接相连的 i 和 j 在不经过k的情况下已经连通,则有环. 注意区分直接连接和间接连接. * 路径记录 ...

  3. vqmod for opencart插件制作进阶与技巧

    FROM: http://www.sdtclass.com/4799.html 15年的时候,我写过一篇文章<略谈 vqmod for opencart 插件制作过程>,也不知道被哪些人抄 ...

  4. BeanUtils Object 取值赋值

    /** * 将结果集导出为Excel * * @param response * @param fsc * @param columns * @param bizType * @throws Exce ...

  5. python下的类的部分特点

    #coding=utf-8 class data: def __init__(self): #构造函数 self.name=' def pp(self): print self.name class ...

  6. ubuntu 14.04 安装Eclipse与配置环境变量

    1. 安装JDK 1.1 源码包下载 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/index.html,我下载 ...

  7. 【jmeter】jmeter聚合报告之90%Line参数说明

    其实要说明这个参数的含义非常简单,可能你早就知道他的含义,但我对这个参数一直有误解,而且还一直以为是“真理”,原于一次面试,被问到了这个问题,所以引起我这个参数的重新认识. 先说说我错误的认识: 我一 ...

  8. Hadoop专业解决方案-第12章 为Hadoop应用构建企业级的安全解决方案

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,春节期间,项目进度有所延迟,不过元宵节以后大家已经步入正轨, 目前第12章 为Hadoop应用构 ...

  9. 【Spring学习笔记-3.1】让bean获取spring容器上下文(applicationContext.xml)

    *.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...

  10. 转转转!!java基础一些静态代码块等知识点

    一.代码块: 构造代码块------类中方法的外面:每次调用构造方法都执行: 静态代码块------类中方法的外面,括号前加上static:只执行一次,随着类的加载而执行: static代码块.构造代 ...