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

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

例如:user表中有userID,userName两个字段,如果不希望有2条一模一样的记录,需要给user表添加多个字段的联合唯一索引:

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

例如:

alter table user_daily_money_info add unique index agd(user_account_id,game_id,daily_date);

alter table user_daily_money_info add unique key agdkey(user_account_id,game_id,daily_date);

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

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

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

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

查看索引  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(普通索引)

mysql>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` )

1.普通索引。

这是最基本的索引,它没有任何限制。它有以下几种创建方式:

(1)创建索引:CREATE INDEX indexName ON

tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是

BLOB 和 TEXT 类型,必须指定length,下同。

(2)修改表结构:ALTER tableName ADD INDEX [indexName] ON (tableColumns(length))

(3)创建表的时候直接指定:CREATE TABLE tableName ( [...], INDEX [indexName] (tableColumns(length)) ;

2.唯一索引。

它与前面的”普通索引”类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

(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命令。

mysql两列唯一索引吗_mysql多字段唯一索引相关推荐

  1. Python之pandas:对dataframe数据的索引简介、应用大全(输出索引/重命名索引列/字段去重/设置复合索引/根据列名获取对应索引)、指定某字段为索引列等详细攻略

    Python之pandas:对dataframe数据的输出索引.重命名索引列/字段去重/设置复合索引/根据列名获取对应索引.指定某字段为索引列等详细攻略 目录 对pandas中dataframe数据中 ...

  2. mysql 两列数据互换_mysql 实现互换表中两列数据方法简单实例

    由于最近项目,有这样一个需求,是把数据库中的两列数据互换,经过好久才搞定,这里写个简单实例,做过记录. 1.创建表及记录用于测试 CREATE TABLE `product` ( `id` int(1 ...

  3. mysql 创建分区索引吗_MySQL分区字段列有必要再单独建索引吗?

    大家都知道对于分区字段必须是主键的一部分,那么建了复合主键之后,是否需要对分许字段再单独添加一个索引呢?有没有效果?本文主要给大家介绍了关于MySQL分区字段列是否有必要再单独建索引的相关资料,文中通 ...

  4. mysql 两张表合并查询_mysql中的分区表和合并表详解(一个常见知识点)

    分区表是mysql5.1之后的新特性,合并表已经存在很长时间了.这篇文章主要介绍这两个概念以及他们基本的操作. 一.合并表 合并表说实话是一种将要被淘汰的技术,但是掌握了合并表的概念再去看分区表就比较 ...

  5. mysql 添加表索引语句_mysql 为表添加索引

    索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有3个 ...

  6. mysql 数据索引使用_mysql数据库正确建立索引及使用

    普通mysql运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的mysql了.其中优化mysql的一个重要 ...

  7. mysql防止索引崩溃_MySQL优化之避免索引失效的方法

    在上一篇文章中,通过分析执行计划的字段说明,大体说了一下索引优化过程中的一些注意点,那么如何才能避免索引失效呢?本篇文章将来讨论这个问题. 避免索引失效的常见方法 1.对于复合索引的使用,应按照索引建 ...

  8. mysql 字符串索引 优化_MySQL性能优化之索引调优实战

    索引失效场景或使用注意事项 a.索引无法存储null值,所以建议都给默认值 b.如果条件中有or,即使使用了索引条件也不起作用,所以尽量少用or 如果想使用or,又让索引生效,只能将or的每个列上加上 ...

  9. mysql两个表查询修改_MySQL:查询、修改(二)

    干货: 使用SELECT查询的基本语句SELECT * FROM 可以查询一个表的所有行和所有列的数据.SELECT查询的结果是一个二维表. 使用SELECT *表示查询表的所有列,使用SELECT ...

最新文章

  1. 亚马逊:从零售商向科技公司的质变
  2. echarts中graphic_使用Pyecharts进行奥运会可视化分析!
  3. Java™ 教程(字符流)
  4. HDU 4418 Time travel
  5. noip2019集训测试赛(七)
  6. linux执行多个命令_您必须知道的前50多个Linux命令
  7. ASP.NET MVC3书店--第二节 控制器(转)
  8. matlab 拟合瑞利分布公式_概率论3「学生成绩转化」为正态分布和偏态分布的方法...
  9. 三菱系统刀库乱刀处理_FANUC系统对圆盘式刀库现场操作及调试
  10. 你干的是高档活儿还是Low逼活儿,就在一念之间
  11. C语言自学-简单的记录
  12. win7装linux系统安装,科学网—Win7 和Linux 双系统的安装 - 刘立兴的博文
  13. 前端实现很哇塞的浏览器端扫码功能
  14. 仿百度文库解决方案——利用FlexPaper显示Flash(SWF)
  15. win10自带sftp服务器_如何使用OpenSSH在Win10中设置SFTP服务器
  16. Android九环刀之RatingBar之评委请亮分
  17. POJ1201/ZOJ1508/HDU1384 Intervals(spfa解差分约束问题)
  18. jquery easyui 全部图标
  19. 同一个类中不同方法之间的互相调用
  20. 什么是BFC、IFC、GFC、FFC

热门文章

  1. matlab v7.6运行库,vbvc软件运行库win7
  2. Google adsense/play/admob回款结汇
  3. 自造轮子:C#中数字转中文(繁体可自行更换)
  4. 给中国学生的一封信:从诚信…
  5. hive 常见的函数
  6. @Transactional注解详细使用
  7. maven导入jar包步骤
  8. 属马的人取名不宜用字
  9. 《web开发: JavaScript DOM获取元素》
  10. 华为Android10版怎么截屏,◆华为P10怎么截屏 详细解读华为10截屏方法◆---已回复...