首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql设置主键自增,删除部分数据,将主键顺序重新排序解决方案

mysql设置主键自增,删除部分数据,将主键顺序重新排序解决方案

作者头像
知识浅谈
发布2021-05-10 11:38:36
发布2021-05-10 11:38:36
5K00
代码可运行
举报
文章被收录于专栏:分享学习分享学习
运行总次数:0
代码可运行

原因:在进行数据的插入删除的时候,总会有以前创建的数据被删除的情况,但是删除后再添加,还是从当前id最大的值进行自增的,所以是这样下去可能时间长了就会超出范围

解决方案: 如果直接在数据库中进行操作,直接跳过前两步,直接第三步即可。 第一步:对你的项目进行配置,因为像是springboot的框架中,要想执行多条语句,要进行相关的配置如下: url: jdbc:mysql://localhost:3306/dare?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true 最重要的是&allowMultiQueries=true要加到对应的语句后边

第二步:检查项目是否使用druid的数据池如果使用用了,要使用以下配置文件:见我另一篇博客最后的解决方案:https://blog.csdn.net/qq_37699336/article/details/114811392?spm=1001.2014.3001.5501

第三步: 1、如果是直接在数据库管理软件/或后台执行语句:

代码语言:javascript
代码运行次数:0
运行
复制
   <!--对自增列进行重新排序-->
        ALTER TABLE `table_name` DROP `id`;
        ALTER TABLE `table_name` ADD `id` int NOT NULL FIRST;
        ALTER TABLE `table_name` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);

2、如果是在对应的项目中,则在对应的mapper的xml文件中执行

代码语言:javascript
代码运行次数:0
运行
复制
    解释:因为我是想的是在删除数据后对表中的id重置,所以我就把alter语句直接放到delete语句中了,已经过测试
    <delete id="deleteTempProjectAPQPStep">
        delete
        from apqp_schedule_temp
        where emp_no = #{empNo};
        <!--对自增列进行重新排序-->
        ALTER TABLE `table_name` DROP `id`;
        ALTER TABLE `table_name` ADD `id` int NOT NULL FIRST;
        ALTER TABLE `table_name` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);

    </delete>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档