数据库索引 为空重复 报错
框架:ci2.0 集合了cms
数据库:mysql
用户表引擎为MyISAM
,邮箱为唯一索引
问题:
用户注册时,不要求填写邮箱,但是在数据库设计时,将邮箱设计为唯一索引
导致第一个用户注册成功后,没有填写邮箱。
第二个用户注册时,数据库则因为已经有一个邮箱值为空导致冲突。系统报错:
uplicate entry '' for key 'email'
解决:
导致当有一个用
户没填写邮箱信息时,新用户就无法注册 解决办法
- 将数据库引擎更换为InnoDB,Innodb支持多个唯一值为null的索引,并将邮箱默认值改为null
- 【不推荐】取消邮箱的唯一索引
参考资料:
Comments