600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > mysql添加多字段唯一索引吗_mysql多字段唯一索引

mysql添加多字段唯一索引吗_mysql多字段唯一索引

时间:2022-03-13 08:25:40

相关推荐

mysql添加多字段唯一索引吗_mysql多字段唯一索引

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

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

例如: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还有一种情况就是,我们需要为以前的表 创建这个索引,有可能以前的数据中存在重复的记录 那怎么办呢?

alterignoretableuseradduniqueindex(user_id,user_name);

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

查看索引showindexfrom数据库表名

altertable数据库addindex索引名称(数据库字段名称)

PRIMARYKEY(主键索引)

ALTERTABLE`table_name`ADDPRIMARYKEY(`column`)

UNIQUE(唯一索引)

ALTERTABLE`table_name`ADDUNIQUE(`column`)

INDEX(普通索引)

mysql>ALTERTABLE`table_name`ADDINDEXindex_name(`column`)

FULLTEXT(全文索引)

ALTERTABLE`table_name`ADDFULLTEXT(`column`)

多列索引

ALTERTABLE`table_name`ADDINDEXindex_name(`column1`,`column2`,`column3`)

1.普通索引。

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

(1)创建索引:CREATEINDEXindexNameON

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

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

(2)修改表结构:ALTERtableNameADDINDEX[indexName]ON(tableColumns(length))

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

2.唯一索引。

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

(1)创建索引:CREATEUNIQUEINDEXindexNameONtableName(tableColumns(length))

(2)修改表结构:ALTERtableNameADDUNIQUE[indexName]ON(tableColumns(length))

(3)创建表的时候直接指定:CREATETABLEtableName([...],UNIQUE[indexName](tableColumns(length));

3.主键索引

它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATETABLEtestIndex(i_testIDINT

NOTNULLAUTO_INCREMENT,vc_NameVARCHAR(16)NOTNULL,PRIMARY

KEY(i_testID));当然也可以用ALTER命令。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。