为什么注册第二个用户会注册失败
来源:4-2 编码实战:实现用户注册接口
蒋堪
2020-01-15
为什么可以注册第一个用户,但注册第二个用户就不行了,我debug了两个晚上,都没法注册,到这里来看,突然想起来提问区,就来看看,说是唯一索引的问题!!!!唯一索引到底引发了什么问题,我明明两个用户名是不一样的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
写回答
1回答
-
xiaomo
2020-01-16
抱歉, 同学少稍安勿躁哦, 详细参考下这里, 数据库表索引有修改过, 可以参考下这个问题:
http://coding.imooc.com/learn/questiondetail/114480.html也可以参考下git仓库中的文档说明. 其中用户表建表语句如下:
CREATE TABLE `tbl_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(64) NOT NULL DEFAULT '' COMMENT '用户名', `user_pwd` varchar(256) NOT NULL DEFAULT '' COMMENT '用户encoded密码', `email` varchar(64) DEFAULT '' COMMENT '邮箱', `phone` varchar(128) DEFAULT '' COMMENT '手机号', `email_validated` tinyint(1) DEFAULT 0 COMMENT '邮箱是否已验证', `phone_validated` tinyint(1) DEFAULT 0 COMMENT '手机号是否已验证', `signup_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册日期', `last_active` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后活跃时间戳', `profile` text COMMENT '用户属性', `status` int(11) NOT NULL DEFAULT '0' COMMENT '账户状态(启用/禁用/锁定/标记删除等)', PRIMARY KEY (`id`), UNIQUE KEY `idx_username` (`user_name`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
唯一索引原来用在了phone字段上, 如果插入表的时候, phone使用了默认值(空值), 就会引发冲突.
012020-01-16
相似问题