mybatisplus+ mysql 数据库id自增值变大且AUTO_INCREMENT无效的问题

一 发现问题

  1. 程序跑了一段时间,发现经常报 Duplicate entry ‘911450114’ for key ‘PRIMARY’ 异常;
  2. 查看数据库中的id字段,发现有负值也有正值,而且都是比较大的数;
  3. 查看建表时设置的AUTO_INCREMENT=1,是没有问题的,但是为什么会增长这么快呢?
  4. 查询了一下数据库中总的数据条数,一共才200条。正常不应该有这个问题啊。
  5. 带着疑问,开始google查找问题,一开始怀疑是数据库本身的问题,是不是数据库id自增主键设置的有问题,查看数据发现id和插入时间一点关系都没有。而且设置的auto_increment_increment和auto_increment_offset都是对的
  6. 在这里插入图片描述
  7. 既然mysql没有问题,那是不是mybaits的问题呢,带着疑问查了一下网上的资料,查到这篇文章,https://blog.csdn.net/razorluo/article/details/106238129 mybatisplus自增主键很大问题排错
  8. 看到这里我去看了下我的实体类,和别的实体类对比了一下,出现问题的实体类没有标识@TableId这个注释,可能是创建实体的时候数据库还没有加自增
  9. `/**
    • id
      */
      @TableId(value = “id”, type = IdType.AUTO)
      private Integer id;`
  10. 网上查了一下,如果不标识这个的话,mybatisplus默认为IdType.ASSIGN_ID
  11. 在类com.baomidou.mybatisplus.core.config.GlobalConfig的DbConfig下
  12. public DbConfig() { this.idType = IdType.ASSIGN_ID; this.tableUnderline = true; this.capitalMode = false; this.logicDeleteValue = "1"; this.logicNotDeleteValue = "0"; this.insertStrategy = FieldStrategy.NOT_NULL; this.updateStrategy = FieldStrategy.NOT_NULL; this.whereStrategy = FieldStrategy.NOT_NULL; }
    @TableId注解的 类型属性来设置主键id的增长策略,一共有几个多个主键策略
    1,ASSIGN_ID(雪花算法)
    2,ASSIGN_UUID(排除中划线的UUID)
    3,AUTO(数据库ID自增)
    4,INPUT(插入前自行设置主键值)
    正常我们使用的是AUTO类型,即数据库id自增即可;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值