新增一条数据后,主键ID突然变得超大和跳跃是怎么回事呢?

 

就是在数据库中添加数据的话主键自增是正常的,但是在后台调用接口添加数据后,主键一下子就变得超大,并且具有跳跃性,不连贯!

恳求大佬帮忙看看

package com.xly.manage.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * @table: 员工登记信息表
 */
@Getter
@Setter
public class UserLevelConf {
    @TableId(type = IdType.AUTO)
    private Integer id;

    /** 等级设置  从A0开始,依次递增 */
    private String levelType;

    /** 是否删除 */
    private Integer status;

    /** 等级名称  对应后台页面 合伙人来源渠道 */
    private String levelName;

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xly.manage.dao.first.UserLevelConfMapper">
  <resultMap id="BaseResultMap" type="com.xly.manage.entity.UserLevelConf">
    <id column="ID" jdbcType="INTEGER" property="id" />
    <result column="LEVEL_TYPE" jdbcType="VARCHAR" property="levelType" />
    <result column="STATUS" jdbcType="INTEGER" property="status" />
    <result column="LEVEL_NAME" jdbcType="VARCHAR" property="levelName" />
    <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" />
    <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
    <result column="ENABLE" jdbcType="INTEGER" property="enable" />
    <result column="USER_TYPE" jdbcType="SMALLINT" property="userType" />
  </resultMap>
  <sql id="Base_Column_List">
    ID, LEVEL_TYPE, STATUS, LEVEL_NAME, CREATE_TIME, UPDATE_TIME, ENABLE, USER_TYPE
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from user_level_conf
    where ID = #{id,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    delete from user_level_conf
    where ID = #{id,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.xly.manage.entity.UserLevelConf">
    <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
      SELECT LAST_INSERT_ID()
    </selectKey>
    insert into user_level_conf (ID, LEVEL_TYPE, STATUS,
      LEVEL_NAME, CREATE_TIME, UPDATE_TIME, 
      ENABLE, USER_TYPE)
    values (#{id,jdbcType=INTEGER}, #{levelType,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
      #{levelName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, 
      #{enable,jdbcType=INTEGER}, #{userType,jdbcType=SMALLINT})
  </insert>

 

参考这个

是你自己给ID赋值了吗?

insert into user_level_conf (ID, LEVEL_TYPE, STATUS,
      LEVEL_NAME, CREATE_TIME, UPDATE_TIME, 
      ENABLE, USER_TYPE)
    values (#{id,jdbcType=INTEGER}, #{levelType,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
      #{levelName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, 
      #{enable,jdbcType=INTEGER}, #{userType,jdbcType=SMALLINT})

 

你把 select key 删了试试呢,只要 mysql 设置了自增主键就不用 select key 了,估计是它的问题