java - SAP Hana 中基于 JDBC 的 SQL UPDATE 不是持久的
问题描述
我们目前正在从 Oracle 迁移到 SAP Hana,并且我们正在使用通过 JDBC 访问数据库的 Java 程序。
当我用 Java 对 Hana 数据库进行 SQL 更新时,此更改不会写入数据库。
更新后我用Squirrel查看表是否有变化,变化是不可见的!
如何通过 JDBC 在 Hana 中使用 UPDATE、INSERT 和 DELETE 写入数据?
解决方案
正如 SipCat 自己发现的那样,这种行为是由
- 使用
autocommit=false
- 而不是
COMMIT
ing 应用程序所做的更改。
在这种情况下,当应用程序断开数据库会话时,事务将被回滚。
一些 SQL 编辑器/查询 UI 工具(如 DBSquirrel)在每个命令后使用autocommit=true
或自动发出 a COMMIT
,因此可能看起来COMMIT
不需要或不涉及事务处理。
那是一种错误的印象。事实上,即使SELECT
s(它“只是”读取数据)在技术上总是在事务上下文中。
推荐阅读
- reactjs - 如何在没有弹出的情况下在 devtool 中查看 css 文件名?
- python - numpy.where 产生不一致的结果
- php - 使用 $_POST 从两个以上的下拉列表 HTML 中获取选择选项值
- php - 按关键字搜索 S3 文件夹中的图像
- javascript - 循环中的Vue组件
- python - Tensorflow:从张量中堆叠所有行对
- python - 无法通过脚本在 Maya 中初始化海龟
- bash - crop.sh:第 3 行:意外标记 `('crop.sh:第 3 行:`foreach 文件 (`ls *.pdf`)' 附近的语法错误
- javascript - Firebase 实时数据库使用 JavaScript 发布旧图像
- c++ - 如何使用 ZeroMQ 监听和解析特定端口上的 UDP 数据?