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

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

例如: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命令。

最新文章

  1. TiQuery
  2. gtest学习一:在vs2013中搭建gtest环境
  3. 如何得到EF(ADO.NET Entity Framework)查询生成的SQL? ToTraceString Database.Log
  4. 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)
  5. 制作U盘启动盘及安装操作系统的方法
  6. 在xcode运行编译时,编译成功,但项目中显示缺少该文件,这是只要关闭重启xcode即可。
  7. windows 常用快捷键
  8. HDU 4343 D - Interval query 二分贪心
  9. leetcode Permutations II 无重全排列
  10. Open开发平台,认证,授权,计费
  11. JSP EL表达式使用
  12. 运行gpg --gen-key生成key时出现卡住的问题
  13. R语言&页游渠道分析(转)
  14. 求m区间内的最小值
  15. 【Spring】Spring MVC高级技术
  16. Oracle 启动监听命令
  17. WPF 耗时操作时,加载loging 动画 (BackgroundWorker 使用方法)
  18. drf2 FBV和CBV
  19. [No0000185]Java技术板块图
  20. node.js cheerio API

热门文章

  1. python socket打造一个定位工具
  2. Nginx not running with no error message
  3. 深入浅出 Java Concurrency (7): 锁机制 part 2 AQS
  4. OpenSUSE 安装JAVA环境变量JDK
  5. proxmox 安装ROS 备忘
  6. Linux环境下搭建python+selenium+webdriver环境
  7. SPI子系统分析之二:数据结构
  8. 用django框架开发一个B2C购物网站用户注册知识点总结2
  9. centos7 yum 安装 mysql
  10. How to map host ip and port to Hyper-V