java - JDBC INSERT INTO - 错误的主键

标签 java mysql sql jdbc

当我从下面执行代码时,一切正常,但我的主键应该设置为 2,但它跳到 6,数据库看起来像 id 1,下一个是 6。我从这个数据库中删除了几行,我很确定那就是问题所在。看起来一切都被删除了,但有些东西还留在那里。

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/","root","");
stat = con.createStatement();
stat.executeUpdate("INSERT INTO money.state (bank,wallet) VALUES (200,400)");

请帮忙。

最佳答案

主键是自动递增的,如果您从表中删除行,那么下一个条目将来自最后一个被删除的主键 ID,而不是来自表中存在的最后一个主键。这就是它的工作方式。

但是,如果您想填补空白(不推荐),那么您必须手动进行如下更改:

ALTER TABLE [yourtablename] AUTO_INCREMENT = 1

因此这将根据表中存在的最高现有值将 auto_increment 值重置为下一个值。

关于java - JDBC INSERT INTO - 错误的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29668288/

相关文章:

java - Apache Beam 中的 BigQuery 插入重试策略

MySQL 触发器删除整个表而不是一个条目

Mysql - 主键以错误的顺序列出

mysql - 为 mysql 查询指定两种不同的排序顺序

java - Spring 3.0如何使用方法拦截器?

java - JMS集成测试

java - 如何只允许小部件android的单个实例

PHP PDO MySQL 查询 LIKE -> 多个关键字

sql - 表连接没有返回准确的结果;任何想法为什么?

sql - 如何在 MS Access 查询中指定默认值?