zoukankan      html  css  js  c++  java
  • Bug: 删除中间某条记录后/删除最后一条记录再添加 ,auto-increment的自动增长不连续

    问题描述:

     现在我删除最后一条记录:

     再加上一条新记录:

    发现,记录的id不是4而是5.

    问题解释:

      这是因为作为主键而不得有重复的id值,就算是删掉了,因为设置了auto_increment,为了保持id的自增,他只会接着自己的增长记录走,而不管记录中的每一个值是否还存在.

    办法:

     删除该列表的主键,然后重新添加它,并设置auto_increment.

      可是,当我删除时:

    ALTER table users PRIMARY KEY;
    

      却出现:

      说明删除主键的方法,会影响到列的定义,也就是建表时定义的auto_increment;

      于是方法改为:

    ALTER TABLE users DROP userId;
    

      直接以列名的形式直接删除那个列,就可以忽略掉列的定义了!(但是别忘了如果他又是外键,需要先解除外键关系)

    最后解决方案:

      

    /*
    *插入or删除操作
    */
    
    ALTER TABLE users DROP userId;//去除原来的列
    ALTER table users add userId int(6) not null auto_increment PRIMARY KEY;//重新定义,排列
    

      注:在myBatis中并未找到@Alter的注解,但是@Update同样适用!

  • 相关阅读:
    BZOJ4987 Tree
    BZOJ4817 [SDOI2017]树点涂色
    BZOJ4811: [YNOI2017] 由乃的OJ
    BSGS算法
    codeforces914G Sum the Fibonacci
    NOI2018网络同步赛游记
    雅礼集训 2017 Day2 水箱 可并堆
    CTSC&APIO2018游记
    51Nod 有限背包计数问题 题解报告
    CTSC2016&&APIO2016游记
  • 原文地址:https://www.cnblogs.com/learn-with-blog/p/12688822.html
Copyright © 2011-2022 走看看