首页 > 解决方案 > Mysql jdbc - 插入的值被立即删除

问题描述

我正在使用 mysql java 连接器 (mysql-connector-java-8.0.11) 来访问数据库。我打开一个连接并生成一些表。到目前为止一切正常。

但是当我尝试在其中一个表中插入一个值时,该行会立即被删除。

我使用以下代码

PreparedStatement stmt = connection.prepareStatement("INSERT INTO database_upgrade (version) VALUES (?)");
stmt.setInt(1, newVersion);
stmt.executeUpdate();
stmt.close();

当我调试到 executeUpdate 时,正确返回了 insertId 和 updateCount。但是当我查看数据库时,条目丢失了。autoincrement id 增加了,这表明该行被插入然后删除,但我不知道为什么。

有趣的一点:如果我为此插入使用新的连接,一切都会完美运行。但是当我使用之前操作的连接时,它没有。

只是为了澄清

谁能告诉我为什么会这样?我在 MS SQL 服务器上使用了相同的代码,但这并没有发生。

谢谢!

标签: mysqljdbc

解决方案


感谢 Gord Thompson,我找到了它。以前的一些 sql 命令(我没有仔细检查)关闭了自动提交。

解决方案:我删除了我的 sql 文件中的 autoCommit 禁用部分。


推荐阅读