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

     

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

  • 相关阅读:
    Compiling Open Source Software for UNIX using Configure Script
    vlcandroid 移植live555到android
    xcode中armv6与armv7的困惑
    ZOJ 3204 Connect them (最小生成树,输出字典序最小的解)
    POJ 3133 Manhattan Wiring (插头DP)
    HDU 4419 Colourful Rectangle 第37届ACM/ICPC 杭州赛区网络赛 1010题 (线段树)
    HDU 3829 Cat VS Dog (二分匹配求最大独立集)
    最大流模板(SAP算法)(邻接表形式)
    HDU 4417 Super Mario 第37届ACM/ICPC 杭州赛区网络赛第1008题 (划分树)
    ZOJ 3203 Light Bulb (数学直接推公式 或者 三分法)
  • 原文地址:https://www.cnblogs.com/snake23/p/9378565.html
Copyright © 2011-2022 走看看