MySql 主键自增重置器(统一处理多个表)

resetAutoincrement 是一款基于 Java 开发的程序,其功能为重置 mysql 数据库表的主键自增的值为最近的一个。

介绍

开发背景主要是工作中,测试同学在清理数据的时候,使用的是 DELETE 进行删库(其实可以使用 TRUNCATE),删库完毕后会造成主键自增的值并没有归0,而是继续计算下去(如:数据库新插入一条数据,id483 ,但是我期望的是从 1 开始),作为有点略微强迫症的小开发,我就在思考能否写一个程序来重置 Mysqlauto_increment 值,于是乎写了这个 Java 程序。

项目地址

环境说明

  • JDK:1.8
  • MySql:5.7

程序演示

视频网站 地址
哔哩哔哩 https://www.bilibili.com/video/av84268614
Youtube https://youtu.be/cd724k13Z5I

目录结构

.
├── actuator 该目录下存放执行器接口及其实现类,整个程序的核心实现
├── config 数据库链接的配置信息存放于此,也可以使用properties配置文件替换
├── exception 异常类存放于此
├── pojo 实体类存放于此
├── run 整个程序的启动目录,执行`main`即可启动程序
└── validation 该目录下存放校验类的信息,目前只写了一个校验数据库连接配置信息的类

使用说明

  1. 本人测试的数据库demo sql语句
CREATE TABLE `demo` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='demo数据库'; CREATE TABLE `demo02` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`remarks` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='demo02数据库';
  1. config目录下配置好数据库的连接信息
  2. run目录下启动main方法即可执行

联系作者

  • email:chimmhuang@163.com
  • QQ:905369866

Java重置Mysql主键自增长值的更多相关文章

  1. mysql主键问题

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_22314145/article/details/80824660 MySQL主键 一. MyS ...

  2. MySQL主键设计盘点

    目录 主键定义 主键设计和应用原则 主键生成策略 自增ID UUID 自建的id生成器 Twitter的snowflake算法 @ 最近在项目中用了UUID的方式生成主键,一开始只是想把这种UUID的 ...

  3. MySQL主键设计

    [TOC] 在项目过程中遇到一个看似极为基础的问题,但是在深入思考后还是引出了不少问题,觉得有必要把这一学习过程进行记录. MySQL主键设计原则 MySQL主键应当是对用户没有意义的. MySQL主 ...

  4. MYSQL主键自动增加的配置及auto_increment注意事项

    文章一 原文地址: http://ej38.com/showinfo/mysql-202971.html 文章二:   点击转入第二篇文章 在数据库应用,我们经常要用到唯一编号.在MySQL中可通过字 ...

  5. 获得自动增长的MySQL主键

    下面的脚本教您如何获得自动增长的MySQL主键,如果您对MySQL主键方面感兴趣的话,不妨一看,相信对您学习MySQL主键方面会有所启迪. import java.sql.Connection; im ...

  6. PowerDesigner 15设置mysql主键自动增长及基数

    PowerDesigner 15设置mysql主键自动增长及基数 1.双击标示图,打开table properties->columns,  如图点击图标Customize Columns an ...

  7. Mysql主键索引、唯一索引、普通索引、全文索引、组合索引的区别

    原文:Mysql主键索引.唯一索引.普通索引.全文索引.组合索引的区别 Mysql索引概念: 说说Mysql索引,看到一个很少比如:索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不 ...

  8. mysql主键设置成auto_increment时,进行并发性能測试出现主键反复Duplicate entry 'xxx' for key 'PRIMARY'

    mysql主键设置成auto_increment时,进行并发性能測试出现主键反复Duplicate entry 'xxx' for key 'PRIMARY' 解决方法: 在my.cnf的[mysql ...

  9. Mysql 主键约束PrimaryKey

    Mysql 主键约束Primary Key 今天来简单的讲一下主键约束. 假如有一张学生信息表,里面记录了学生的学号 ,姓名,成绩等,那么,会不会有两个学号相同的学生,答案肯定是否定的,如果有的话也只 ...

随机推荐

  1. 基于hexo创建博客(Github托管)

    基于hexo的博客 搭建好的博客网站 dengshuo7412.com 搭建步骤 1.依赖文件下载 Node.js 2.Hexo的安装 3.部署到Github 4.Hexo创建博客基本操作 5.Hex ...

  2. mybatis 自动生成代码工具

    配置官网: http://www.mybatis.org/generator/configreference/xmlconfig.html 源码:https://github.com/mybatis/ ...

  3. SpringBoot + react app 项目,解决跨域问题的配置(跳坑含泪总结,亲测有效)

    方法一: 对某一接口配置,可以在方法上添加 @CrossOrigin 注解 @CrossOrigin(origins = {"http://localhost:8110", &qu ...

  4. 我的.emacs配置

    我不是大神,使用vim和emacs只是兴趣,打发空闲时间. 上代码: ;; Added by Package.el. This must come before configurations of ; ...

  5. Codeforces1138-A(D题)Sushi for Two

    Arkady invited Anna for a dinner to a sushi restaurant. The restaurant is a bit unusual: it offers n ...

  6. 树状数组区间更新区间查询以及gcd的logn性质

    题目描述 给你一个长为n的序列a m次查询 每次查询一个区间的所有子区间的gcd的和mod1e9+7的结果 输入描述: 第一行两个数n,m之后一行n个数表示a之后m行每行两个数l,r表示查询的区间 输 ...

  7. 封装 private

    封装表现: 1.方法就是一个最基本封装体. 2.类其实也是一个封装体. 从以上两点得出结论,封装的好处: 1.提高了代码的复用性. 2.隐藏了实现细节,还要对外提供可以访问的方式.便于调用者的使用.这 ...

  8. 【Copy攻城狮日志】Node快速重命名文件,告别Potplay字幕困扰问题

    ↑开局一张图,故事全靠编↑ 前言 Copy攻城狮日志的惯例,开局一张图,开始为您讲述一个鲜为人知的故事.故事的开头要从本大狮从盗版网站下载udemy课程的犯罪伊始说起,去年的某月某天,我真正接触到了“ ...

  9. 1700人点反对的LeetCode问题,是因为太难了吗?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第40篇文章,我们一起来看的是LeetCode中的71题Simplify Path,中文名是简化路径. 这题的难 ...

  10. NO.5 CCS运行demo(云端)

    我们在demo的README中发现如果程序在云端运行会有很酷的界面而且功能会多一些. 首先我们在CCS开始界面点击Resourse Explorer 然后在浏览器中找到对应的demo 打开GUI界面, ...