mysql 给表添加一个联合唯一索引

mysql 给表添加一个联合唯一索引

操作方法

  • 01

    项目中需要用到联合唯一索引: 例如:有以下需求:每个人每一天只有可能产生一条记录:处了程序约定之外,数据库本身也可以设定: 例如: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)) ;

  • 02

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

(0)

相关推荐

  • 怎么为数据库表添加外键

    对于数据库操作来说,设置一个表的主键,相信大家都已经很熟悉了.那么怎么给表添加一个外键呢?我们来看看这个问题! 操作方法 01 我今天就以SqlSever2005数据库为例来讲讲操作方法,具体如下: ...

  • mysql在指定的一个字段后面添加一个字段

    在mysql数据库中怎样在指定的一个字段后面添加一个字段: 首先给一个实例:alter table newexample add address varchar(110) after stu_id; ...

  • 图解MySQL数据库表操作(一)

    MySQL数据库中的数据存储在被称为表(tables)的数据库对象中.表是相关的数据项的集合,它由列(字段)和行(记录)组成. 本篇将详细介绍数据表操作中的准备工作.创建数据表.查看数据表.记录操作记 ...

  • 分享几个实用的MySQL建表、查询优化小技巧

    操作方法 01 MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗 ...

  • mysql 给表设置组合主键

    mysql  中有时候会遇到多个字段来表示数据的唯一性,那么这里就会用到组合主键了. 操作方法 01 编写创建表sql代码: 02 设置联合主键: 03 执行代码,发现出现错误: 04 解决方案:给i ...

  • 如何批量修改mysql的表前缀名称

    ysql数据库表前缀,这个是我们区分其它表的一个方式,当我们同一个数据库中含有多个系统的的时候,表前缀就却分的唯一标识.我们使用php开源程序安装建站的时候,一般数据库表前缀都是默认设置好的,如:wo ...

  • 如何在MySQL创建表

    MySQL的数据库由各种表构成.表里包含被输入数据库的信息,基本上,你可以根据需要存储的数据创建任何一种表.创建一个表只需要数分钟,尤其是如果你只要存储几项不同的条目.下文将教你如何创建表. 创建表 ...

  • XP系统使用注册表添加网络身份验证的方法

    在今天的注册表使用教程,我们将给大家分享的是XP系统使用注册表添加网络身份验证的方法.那么,为什么要添加添加网络身份验证呢?打个比方,我们在使用远程桌面连接的时候,如果添加了网络身份验证,将大大提高我 ...

  • WPS表格中给数据添加一个三维效果边框

    WPS表格中给数据添加一个三维效果边框 操作步骤 1.打开一篇具有原始数据的WPS工作表,在功能区选择"插入"选项卡,单击"形状"图标,在出现的下拉按钮中选择插 ...