mysql多字段唯一索引
来源:互联网 发布:淘宝可以直邮韩国么 编辑:程序博客网 时间:2024/04/29 17:44
项目中需要用到联合唯一索引:
例如:有以下需求:每个人每一天只有可能产生一条记录:处了程序约定之外,数据库本身也可以设定:
例如: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多字段唯一以及联合索引
- mysql 多字段 联合唯一
- 多字段联合唯一索引的高效解决方案.
- Mysql多字段排序
- MySql -- 多字段排序
- mysql多字段排序
- oracle复合索引介绍(多字段索引)
- MySQL多字段模糊查询
- mysql 多字段排序 问题
- mysql多字段排序问题
- MySQL多字段模糊查询
- ArcEngine 地图符号化,唯一值单字段,多字段渲染
- Mysql唯一索引 唯一约束
- SQLite3 多字段联合唯一性,trigger使用分析
- mysql创建唯一索引
- mysql 唯一索引
- mysql 唯一索引
- SpringMVC表单标签(6)
- Bit Manipulation - Number of 1 Bits
- 引用和指针初探
- 用十进制计算30!(30的阶乘),将结果转化成3进制进行表示的话,该进制下的结果末尾会有多少个0?
- 浅谈C/C++内存泄漏及其检测工具
- mysql多字段唯一索引
- 任务单案例一
- 中日韩教科书中的历史
- Chrome浏览器中的网上应用店如何加载
- 继上一篇文章,由于本地限制,等后续整理在一起
- Ubuntu系统下的Hadoop集群(6)_Hadoop安装配置简略教程
- Java int和integer的区别
- WCF基础教程(三)——WCF通信过程及配置文件解析
- 《Objective-C基础教程》第8章 Foundation Kit 介绍