• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql 中存在null和空时创建唯一索引的方法

mysql 中存在null和空时创建唯一索引的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql null 索引,mysql is not null,mysql 不等于null,mysql null,mysql null替换等相关知识,希望本文的分享对您有所帮助

好多情况下数据库默认值都有null,但是经过程序处理很多时候会出现,数据库值为空而不是null的情况。此时创建唯一索引时要注意了,此时数据库会把空作为多个重复值,而创建索引失败,示例如下:

步骤1:

mysql> select phone ,count(1) from User group by phone;
+-----------------+----------+
| phone | count(1) |
+-----------------+----------+
| NULL | 70 |
| | 40 |
| +86-13390889711 | 1 |
| +86-13405053385 | 1 |

步骤一中发现数据库中有70条null数据,有40条为空的数据。

步骤2:

mysql> select count(1) from User where phone is null;
+----------+
| count(1) |
+----------+
| 70 |
+----------+
1 row in set (0.00 sec)

经2再次验证数据库中null和空不一样的两个值。

步骤3:

mysql> alter table User add constraint uk_phone unique(phone);
ERROR 1062 (23000): Duplicate entry '' for key 'uk_phone'
此时创建索引提示‘ '为一个重复的属性。

步骤4:将所有的空值改成null

mysql> update User set phone = NULL where phone = '';
Query OK, 40 rows affected (0.11 sec)
Rows matched: 40 Changed: 40 Warnings: 0
步骤5:再次创建唯一索引

mysql> alter table User add constraint uk_phone unique(phone);
Query OK, 0 rows affected (0.34 sec)
Records: 0 Duplicates: 0 Warnings: 0

创建成功,OK了

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql 中存在null和空时创建唯一索引的方法

相关文章

  • 2018-12-05SQLServer 快速备份的十种方法
  • 2018-12-05Oracle数据库集复制方法浅议
  • 2018-12-05一些mysql启动参数的说明和优化方法
  • 2018-12-05VPS下修改MySQL root用户密码的方法
  • 2018-12-05SQLServer EVENTDATA()函数来获取DDL 触发器信息
  • 2017-05-11mysql 复制记录实现代码
  • 2018-12-05oracle查看当前日期是第几个星期的方法
  • 2018-12-05mysql-php验证数据库中用户名和密码是否正确
  • 2018-12-05MySQL 视图 第1349号错误解决方法
  • 2018-12-05mysql 记录不存在时插入 记录存在则更新的实现方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql 字符集处理
    • mongodb在dos下服务器启动实例介绍
    • MySQL 存储过程的基本用法介绍
    • 有关连接与断开的文章推荐7篇
    • Mysql中的Sequence实现方法实例详解
    • Debian 6.02 (squeeze)下编译安装 MySQL 5.5的方法
    • ORACLE时间函数(SYSDATE)深入理解
    • 探讨Mysql中OPTIMIZE TABLE的作用详解
    • Mysql远程访问的开启
    • MySQL数据库优化(一)—MySQL引擎

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有