mysql - 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 增加了,这表明该行被插入然后删除,但我不知道为什么。
有趣的一点:如果我为此插入使用新的连接,一切都会完美运行。但是当我使用之前操作的连接时,它没有。
只是为了澄清
- 之前的所有语句都已关闭
- 连接仍然打开
- 前面的Actions是一些“create table”和“alter table”
谁能告诉我为什么会这样?我在 MS SQL 服务器上使用了相同的代码,但这并没有发生。
谢谢!
解决方案
感谢 Gord Thompson,我找到了它。以前的一些 sql 命令(我没有仔细检查)关闭了自动提交。
解决方案:我删除了我的 sql 文件中的 autoCommit 禁用部分。
推荐阅读
- php - WordPress 查询 - 所有以特殊符号(不是 az)开头的帖子
- ios - 从 Swift 包中测试故事板
- postgresql - PostgreSQL 数据从一个数据库迁移到 AWS 中的另一个数据库
- javascript - 带有背景颜色的制表符单元格格式会删除悬停的背景并选中
- c# - Firebase:服务器响应不包含 JSON 对象
- html - 如何将输入框的值传递到数组中,然后使用 html 列表标签显示它
- apache-spark - 线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/spark/sql/SparkSession$:Redis 客户端
- r - 在避免循环的同时计算比其他行“小”的行数
- postgresql - 有没有办法像 MongoDB 一样在线访问我的 postgreSQL 数据库?
- linux - Linux 应用服务的反恶意软件扫描接口 (AMSI) 等效项