mysql中如何用命令创建联合唯一索引


Posted in MySQL onApril 20, 2022

联合唯一索引

项目中需要用到联合唯一索引:

例如:有以下需求:每个人每一天只有可能产生一条记录:处了程序约定之外,数据库本身也可以设定:

例如:t_aa 表中有aa,bb两个字段,如果不希望有2条一模一样的记录(即:aa字段的值可以重复; bb字段的值也可以重复,但是一条记录(aa,bb)组合值不允许重复),需要给 t_aa 表添加多个字段的联合唯一索引:

alter table t_aa add unique index(aa,bb);

例如:

alter table use_info add unique index agd(user_account_id,game_id,daily_date);
alter table user_info add unique key agdkey(user_account_id,game_id,daily_date);

这样如果向表中添加相同记录的时候,会返回一下错误信息。

但是配合Insert into…ON DUPLICATE KEY UPDATE…来使用就不会报错,存在相同的记录,直接忽略。

例:

INSERT INTO unit (
    id,
    unitsubclass,
    name,
    state
)
VALUES('1111','CPU','CPU','0' ) ON DUPLICATE KEY UPDATE       unitsubclass=VALUES(unitsubclass),name =VALUES(name),state =VALUES(state)

还有一种情况就是,我们需要为以前的表 创建这个索引,有可能以前的数据中存在重复的记录 那怎么办呢?

alter ignore table t_aa add unique index(aa,bb);

它会删除重复的记录(会保留一条),然后建立唯一索引,高效而且人性化。

扩展延伸:

查看索引 :

show index from 数据库表名  

alter table 数据库add index 索引名称(数据库字段名称)PRIMARY KEY(主键索引):

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引);

ALTER TABLE table_name ADD UNIQUE (column) INDEX(普通索引):

ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

FULLTEXT(全文索引):

ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

多列索引:

ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

附:mysql中如何用命令创建联合索引

普通联合索引

语法:

create index 索引名称 on 表名(字段名称)

示例:

create index firstIndex on student(id, name, address);

注意:

  • 索引名称、表名、字段名称 都不要用引号括起来
  • 对于联合索引而言,字段名称可以有多个,中间用英文逗号分隔即可
  • 普通索引数据可以重复

结果:

mysql中如何用命令创建联合唯一索引

唯一联合索引

语法:

create unique index 索引名称 on 表名(字段名称)

示例:

create unique index secondIndex on student(id, name, address);

注意:

  • 索引名称、表名、字段名称 都不要用引号括起来
  • 对于联合索引而言,字段名称可以有多个,中间用英文逗号分隔即可
  • 唯一索引数据不可重复

结果:

mysql中如何用命令创建联合唯一索引

总结

到此这篇关于如何利用MySQL添加联合唯一索引的文章就介绍到这了!

MySQL 相关文章推荐
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
MySQL 自定义变量的概念及特点
May 13 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
MySQL 用 limit 为什么会影响性能
Sep 15 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
MySQL创建定时任务
Jan 22 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
mysql insert 存在即不插入语法说明
Mar 25 MySQL
解决MySQL报“too many connections“错误
Apr 19 MySQL
pt-archiver 主键自增
Apr 26 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
MySQL去除密码登录告警的方法
Apr 20 #MySQL
MySQL数据库事务的四大特性
Windows 64位 安装 mysql 8.0.28 图文教程
分析MySQL优化 index merge 后引起的死锁
解决MySQL报“too many connections“错误
Mysql查询时间区间日期列表,不会由于数据表数据影响
Apr 19 #MySQL
You might like
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
canvas实现有递增动画的环形进度条的实现方法
2019/07/10 HTML / CSS
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
心理健康心得体会
2014/01/02 职场文书
安全生产检讨书
2014/01/21 职场文书
美国探亲签证邀请信
2014/02/05 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
python图像处理 PIL Image操作实例
2022/04/09 Python