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`)  www.2cto.com
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;

后期加上:

 ALTER TABLE ·t_user· ADD unique(`username`)

``

### 2,navicat方式

使用navicat操作mysql数据库更加方便,推荐大家多多使用这种方式
设计表时:如图选择索引,第一项‘名’,随便自己起一个有意义的名字就行了。第二项是你要设置唯一性的字段,然后索引类型选择unique。 ![](https://img2018.cnblogs.com/blog/1387696/201904/1387696-20190421104414664-283106172.png) 表已经建好的情况:选中表,右键-设计表-和上述一样操作就行啦。 3,可能遇到的错误
如果唯一性是后期加的(设计完表之后,并且表里已经有了一些数据)
可能存在表中部分数据不满足唯一性的情况,例:想对字段sid设置唯一性,但目前表中有两条数据sid都是472,这是设置唯一性就会出错。
如下图所示(这种情况在命令行操作下也会出现,只不过是以文字的形式) ![](https://img2018.cnblogs.com/blog/1387696/201904/1387696-20190421104450394-994777365.png) 这时就应该删除重复的数据后再设置唯一性。 4,进阶操作——组合索引的唯一性
前面只讲了给一个字段设置唯一性的方法,如果有两个或多个字段的组合需要唯一呢?
例子:有一个保存大四毕业生每周上传的毕设报告的表。它有学生id:sid,周数:week,报告内容:content等字段。
这里只允许每个学生每周上传一份周报告,即sid和week的组合不能出现重复的情况,也就是说不能有两条记录他们的sid和week都相同。
如何在mysql中进行设置呢,这里只给出navicat中的方法:如图只需要选中两个栏位就可以啦! ![](https://img2018.cnblogs.com/blog/1387696/201904/1387696-20190421104521546-653092612.png)

MySQL数据库唯一性设置(unique index)的更多相关文章

  1. mysql 数据库远程访问设置方法

    摘自: http://www.iteye.com/topic/418151 mysql数据库远程访问设置方法 1.修改localhost更改 "mysql" 数据库里的 " ...

  2. Mysql的唯一性索引unique

    目录 唯一性索引unique影响: unique与primary key的区别: 存在唯一键冲突时,避免策略: insert ignore: replace into: insert on dupli ...

  3. Mysql数据库中设置root密码的命令及方法

    我们都知道通常PHP连接 Mysql都是通过root用户名和密码连接,默认情况下在Mysql安装时root初始密码为空,在安装使用PHP开源系统时,都需要填写连接Mysql数据库的用户名和密码,此时当 ...

  4. mysql创建唯一索引UNIQUE INDEX,以及报错“#失败原因: [Execute: Duplicate entry '733186700' for key 'uniq_video_id_index']”

    要给t_video_prods表的video_id字段创建唯一所以,可以使用下面这条语句: alter table t_video_prods add UNIQUE INDEX `uniq_video ...

  5. mysql数据库远程访问设置方法

    1. 修改方式1代码改表法.  可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库 ...

  6. [转]操作MySQL数据库报出:Parameter index out of range (1 > number of parameters, which is

    原文地址:https://blog.csdn.net/zdx_y/article/details/52072914 对MySQL进行insert操作,控制台抛出以下错误:Parameter index ...

  7. mysql数据库如何设置表名大小写不敏感?

    转自:https://blog.csdn.net/iefreer/article/details/8313839 在跨平台的程序设计中要注意到mysql的一些系统变量在windows和linux上的缺 ...

  8. centos7下使用yum安装mysql数据库以及设置远程访问

    CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 $ wget http://repo.mysql.com ...

  9. mysql数据库编码设置成utf-8,避免出现乱码

    设置默认编码为utf8:set names utf8;设置数据库db_name默认为utf8:ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 C ...

随机推荐

  1. (hdu step 7.2.2)GCD Again(欧拉函数的简单应用——求[1,n)中与n不互质的元素的个数)

    题目: GCD Again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. POJ 3528

    三维凸包 /* 增量法求凸包.选取一个四面体,同时把它各面的方向向量向外,增加一个点时,若该点与凸包上的某些面的方 向向量在同一侧,则去掉那些面,并使某些边与新增点一起连成新的凸包上的面. */ #i ...

  3. kafka内置的zookeeper

    kafka 很多说不需要安装zk的是因为他们都使用了kafka自带的zk 至于kafka为什么使用zk,你首先要知道zk的作用, 作为去中心化的集群模式. 需要要消费者知道现在那些生产者(对于消费者而 ...

  4. 自己定义UISlider的样式和滑块

    //自己定义UISlider的样式和滑块 //轨道图片 UIImage *stetchLeftTrack = [UIImage imageNamed:@"thick"]; UIIm ...

  5. CentOS6.8 安装 mysql 5.6

    安装前的准备: 1.确认是否安装过mysql: yum list installed | grep mysql 2.删除系统自带的mysql及其依赖命令: yum -y remove mysql-li ...

  6. c18---数组和指针

    // // main.c // day09 #include <stdio.h> int main(int argc, const char * argv[]) { ; int *numP ...

  7. 关于ShapeDrawable应用的一些介绍(下)

    我们今天接着来看一下Shape中的stroke属性,stroke其实就是边缘的意思,当我们在定义画笔的时候,有很多时候会用到 FILL 和 STROKE,前者能够画出一个实心的形状,而后者就画出一个空 ...

  8. Android开机动画、logo、字样的定制过程【转】

    本文转载自:http://blog.csdn.net/yinhaide/article/details/43668401 Android开机画面总共有三屏 一.第一屏:开机logo 1.选张png格式 ...

  9. C++中值传递(pass-by-value)和引用传递(pass-by-reference)

    1.pass-by-value的情况: 缺省情况C++以pass-by-value(继承C的方式)传递对象至(或来自)函数.函数参数都是以实际参数的复件为初值,调用端所获得的也是函数返回值的一个复件, ...

  10. H3BPM表单设计器公式设计参考

    表单设计器公式设计参考 整体说明 Ø 公式以javascript方式解析,最终支持JS语法或计算方式: Ø 公式变量以数据项为主,以{}符号表示数据项,例如数据项A,表示为{A}:如果是子表中的数据项 ...