数据库索引 为空重复 报错
anlondon Lv6

框架:ci2.0 集合了cms
数据库:mysql
用户表引擎为MyISAM,邮箱为唯一索引

问题:

用户注册时,不要求填写邮箱,但是在数据库设计时,将邮箱设计为唯一索引
导致第一个用户注册成功后,没有填写邮箱。
第二个用户注册时,数据库则因为已经有一个邮箱值为空导致冲突。系统报错:

uplicate entry '' for key 'email'

解决:

导致当有一个用
户没填写邮箱信息时,新用户就无法注册 解决办法

  1. 将数据库引擎更换为InnoDB,Innodb支持多个唯一值为null的索引,并将邮箱默认值改为null
  2. 【不推荐】取消邮箱的唯一索引

参考资料:

 Comments