MySQL 表字段唯一性约束设置unique / Expected one result (or null) to be returned by selectOne(), but found: 5..

Expected one result (or null) to be returned by selectOne(), but found: 5…
这个错误比较简单,提示也很明显
MySQL 表字段唯一性约束设置unique

分析
mybatis-plus中使用的selectOne()方法,由于只能返回一个对象的结果,当返回到多个对象的结果集时报错;如果是单纯的因为selectOne()出错,可以将selectOne 换成 selectList(),使用list接收。

解决方案

1.如果是 selectOne() 方法用错了,改成 selectList() 接收就可以了;

2.如果是正常情况下就返回一条,那就是数据库设计有点问题,需要完善添加唯一索引;

MySQL 表字段添加唯一索引方法(unique):

  ALTER TABLE 表名 ADD UNIQUE(字段名);

例:

  #设置user表中的phone_num为唯一索引
  ALTER TABLE kd_user ADD UNIQUE(phone_number);

顺便说一下建表时添加唯一约束示例:

CREATE TABLE `kd_user` (
  `Id` int(11)  NOT NULL  AUTO_INCREMENT,     -----非空自增
  `username`  varchar(20)  NOT NULL  unique,  -----非空唯一性约束
  `password`  varchar(20)  NOT NULL,
   PRIMARY KEY (`Id`)                 
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;

对已经有索引的字段删除unique索引

#删除fans表中的 user_id 唯一索引
ALTER TABLE kd_fans
DROP INDEX user_id

猜你喜欢

转载自blog.csdn.net/weixin_44958006/article/details/107966975