创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复(在插入数据的时候,如果唯一索引的插入值重复,所以插入就会报错),索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE

把它定义为一个唯一索引。

创建唯一索的方法

操作表

 代码如下 复制代码

CREATE TABLE `wb_blog` (

`id` smallint(8) unsigned NOT NULL,

`catid` smallint(5) unsigned NOT NULL DEFAULT '0',

`title` varchar(80) NOT NULL DEFAULT '',

`content` text NOT NULL,

PRIMARY KEY (`id`),

)

1、创建唯一索可以使用关键字UNIQUE随表一同创建

 代码如下 复制代码

mysql> CREATE TABLE `wb_blog` (

->   `id` smallint(8) unsigned NOT NULL,   
    ->   `catid` smallint(5) unsigned NOT NULL DEFAULT '0',

->   `title` varchar(80) NOT NULL DEFAULT '',   
     ->   `content` text NOT NULL,

->   PRIMARY KEY (`id`),

->   UNIQUE KEY `catename` (`catid`)

-> ) ;

9 Query OK, 0 rows affected (0.24 sec)

上面代码为wb_blog表的'catid'字段创建名为catename的唯一索引

2、在创建表之后使用CREATE命令来创建

 代码如下 复制代码

mysql> CREATE UNIQUE INDEX catename ON wb_blog(catid);

Query OK, 0 rows affected (0.47 sec)

如果不需要唯一索引,则可以这样删除

 代码如下 复制代码

mysql> ALTER TABLE wb_blog DROP INDEX catename;

Query OK, 0 rows affected (0.85 sec)

如果要增加索引

 代码如下 复制代码

alter table user add unique index(user_id,user_name);

注意

唯一索引。

它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
(1)创建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))
(2)修改表结构:ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))
(3)创建表的时候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length));

3.主键索引

它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATE TABLE testIndex(i_testID INT NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY KEY(i_testID)); 当然也可以用ALTER命令。

转载于:https://www.cnblogs.com/wuhan729/p/8443119.html

MYSQL 唯一索引UNIQUE使用方法详解相关推荐

  1. 在mysql中unique唯一索引的作用_MySQL_MySQL中的唯一索引的简单学习教程,mysql 唯一索引UNIQUE一般用于不 - phpStudy...

    MySQL中的唯一索引的简单学习教程 mysql 唯一索引UNIQUE一般用于不重复数据字段了我们经常会在数据表中的id设置为唯一索引UNIQUE,下面我来介绍如何在mysql中使用唯一索引UNIQU ...

  2. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  3. MySQL 唯一索引 UNIQUE KEY 会导致死锁?

    唯一性索引unique影响: 唯一性索引表创建: DROP TABLE IF EXISTS `sc`; CREATE TABLE `sc` (`id` int(11) NOT NULL AUTO_IN ...

  4. mysql explain 索引_MySql中Explain详解与索引最佳实践

    使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的.分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之 ...

  5. 批量 杀掉 mysql 连接_批量杀死MySQL连接的四种方法详解

    方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令.复制代码 代码如下:mysql> ...

  6. MySQL的索引(Index)详解

    索引分类 (1)普通索引(Key Indexes) (2)唯一索引(Unique Indexes) (3)主键索引(Primary Key Indexes) (4)组合索引(Composite Ind ...

  7. android json mysql_Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法.,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Jav ...

  8. python pymysql模块 链接mysql 遍历查询结果的方法 详解

    目录 python链接mysql的方法 遍历字段获取值 完整代码 python链接mysql的方法 import json import pymysql def connect_mysql():con ...

  9. mysql监控sql_关于对mysql语句进行监控的方法详解

    快速阅读 为什么要监控sql语句,以及如何监控,都有哪几种方式可以监控. 我们知道sql server 中有个工具叫sql profile ,可以实时监控sql server中 执行的sql 语句,以 ...

最新文章

  1. Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题)...
  2. java一些常用并发工具示例
  3. 解决win7下netbeans安装的错误问题
  4. 这样就算会了PHP么?-11
  5. 5月23 注册审核
  6. 使用JWT的ASP.NET CORE令牌身份验证和授权(无Cookie)——第2部分
  7. fcn网络训练代码_FCN网络训练 菜鸟版
  8. 计算机病毒能破坏u盘文件,[计算机病毒]快捷方式病毒(U盘文件变为快捷方式)...
  9. 爬虫日记-采集 快代理 免费 代理ip 并 清洗 ip 附源码gitee,可运行
  10. 用微信名片制作软件打造专属的电子名片
  11. 无法打开Internet站点
  12. 来自一枚初生牛犊不怕虎的小菜鸟的Mock.js使用,不足之处欢迎读者的指出 谢谢...
  13. lighttpd 之九 配置信息加载
  14. 杰奇小说系统百度地图生成插件
  15. 华为云服务器上安装jdk和部署tomcat
  16. leetcode 1884-鸡蛋掉落-两枚鸡蛋
  17. python如何读取mat文件可视化_python 数据分析--数据可视化工具matplotlib
  18. OpenGL二次曲面绘制
  19. 强大的地图库--Leaflet.js爬坑记录(2)
  20. 利用ENVI和ARCGIS做相关性分析的两种方法

热门文章

  1. flask SSTI漏洞
  2. 你会看英文药品说明书吗
  3. GetDlgItem所获取CWnd*的时效性
  4. kali防火墙命令集合
  5. Unity3d 反编译破解游戏 简单示例 使用ildasm反编译DLL修改然后重新编译DLL
  6. currentstyle 织梦_织梦channel标签currentstyle样式无效不起作用
  7. VB6语言怎么对接验证码短信接口?
  8. 使用组策略添加删除本地用户和组的成员
  9. JavaScript代码块(代码段)
  10. html js 回到顶部,简单的返回顶部的js代码