zoukankan      html  css  js  c++  java
  • MySql -- unique唯一约束

    3、UNIQUE 约束

      约束唯一标识数据库表中的每条记录。

    创建一张测试表

    CREATE TABLE `test`.`info`(  
      `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
      `idCard` VARCHAR(18) UNIQUE NOT NULL, -- 直接在字段上添加唯一约束
      `mobile` VARCHAR(11),
      PRIMARY KEY (`id`)
    ) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_estonian_ci;

    添加唯一约束UNIQUE

    /*
    除了上面的添加唯一约束的方法以外,
    如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,写法如下:
    uc_idCard约束由mobile和idCard组合成唯一约束。
    */
    CREATE TABLE `test`.`info`(  
      `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
      `idCard` VARCHAR(18) UNIQUE,
      `mobile` VARCHAR(11),
      PRIMARY KEY (`id`),
      CONSTRAINT `uc_idCard` UNIQUE (`mobile`,`idCard`) 
    ) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_estonian_ci;
    
    
    如果在存在表的情况下,添加唯一约束
    -- 无名字的约束 ALTER TABLE `info` ADD UNIQUE (`idCard`);
    -- uc_idCard约束由mobile和idCard组合成唯一约束 ALTER TABLE `info` ADD CONSTRAINT `uc_idCard` UNIQUE (`mobile`,`idCard`);

    撤销 UNIQUE 约束

    -- 移除指定字段的约束
    ALTER TABLE `info` DROP INDEX `idCard`; 
    
    -- 移除有名字的约束
    ALTER TABLE `info` DROP INDEX `uc_idCard`; 

    向 UNIQUE 约束添加数据

    -- 添加一条基础数据
    INSERT INTO `info`(`idCard`,`mobile`) VALUES('99999','1111');
    
    -- 添加一条idCard重复的记录
    INSERT INTO `info`(`idCard`,`mobile`) VALUES('99999','2222');
    
    结果:
    错误代码: 1062
    DUPLICATE entry '99999' FOR KEY 'idCard';
    
    -- 在唯一约束中添加 NULL
    INSERT INTO `info`(`idCard`,`mobile`) VALUES(NULL,'1111');
    -- 再次添加NULL
    INSERT INTO `info`(`idCard`,`mobile`) VALUES(NULL,'2222');
    
    结果:
        id  idCard  mobile  
    -------------------------
         6  (NULL)  1111    
         7  (NULL)  2222
    原因:因为 NULL != NULL
    原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。
  • 相关阅读:
    ADSL PPPoE出错详解及宽带连接中的一些错误代码含义
    2007年世界顶级防火墙排名(附下载地址)
    Asp.net Mvc问题索引
    .NET 操作GPRS Model的类库 ATSMS
    .NET 3.5多个工程编译的DOS命令
    Google Chrome浏览器JS执行效率惊人 实测比IE快十几倍
    FTP文件同步工具(FTP_File_Synchronizer) 源代码
    [转载] ORACLE中SQL查询优化研究
    ext的grid导出为excel 方法
    数据库分页SQL语句
  • 原文地址:https://www.cnblogs.com/lixingwu/p/7206658.html
Copyright © 2011-2022 走看看