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
    原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。
  • 相关阅读:
    unity编辑器扩展
    unity给localRotation赋值
    ASp.net常用服务
    二叉树
    Photon Server类函数介绍
    线程间操作无效: 从不是创建控件的线程访问它的三种方法
    使用vs的输出窗口进行调试输出数据
    Bmob后端云之云数据库的使用
    软件设计的七大原则
    Unite Beijing 2018 参会简要分享
  • 原文地址:https://www.cnblogs.com/lixingwu/p/7206658.html
Copyright © 2011-2022 走看看