MySQL中空和空时创建惟一索引的一种方法

在许多情况下,数据库的默认值是null,但是在处理程序时会出现很多次,数据库值是空的而不是NULL。当创建唯一索引时,数据库将把空值作为多个重复值,而创建索引失败。示例如下:

步骤1:

选择电话,从用户组(电话)计数(1);

----------------- ---------- + + +

| |电话数(1)|

----------------- ---------- + + +

|空| 70 |

| | 40 |

| + 86-13390889711 | 1 |

| + 86-13405053385 | 1 |

步骤1发现数据库中有70个空数据和40个空数据。

步骤2:

从用户是空的用户选择计数(1);

---------- + +

|计数(1)|

---------- + +

70 | |

---------- + +

1行集(0秒)

2再次验证数据库中空值和空值之间的两个值不同。

步骤3:

MySQL >删除用户表添加约束uk_phone独特的(电话);

错误1062(23000):重复录入key'uk_phone

索引是在此时作为重复属性创建的。

步骤4:将所有空值更改为null

更新用户设置电话=;

查询OK,40行受影响(0.11秒)

匹配行:40更改:40个警告:0

步骤5:再次创建一个惟一索引

MySQL >删除用户表添加约束uk_phone独特的(电话);

查询OK,0行受影响(0.34秒)

记录:0个重复:0个警告:0

创造成功,好吗