问题标签 [autocommit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 禁用自动提交并且永远不会回滚会发生什么?
所以我继承了一个大型 c++ 代码库,它做了很多 mysql 工作。 该代码始终禁用自动提交,并且往往具有如下所示的功能:
显然,这里的意图是只有在查询成功时才会提交。但是,如果其中一个不是,会发生什么?最终,mysql 连接正确关闭,但代码中没有回滚。
那么当它关闭时,它基本上会提交任何成功的更改吗?还是会像什么都没发生一样回滚?
我的直觉说,如果第二个查询失败以“撤消”成功的第一个查询,则进行回滚是有意义的。所以这个函数最终是事务性的。
当然,我发现这段代码本质上是被破坏的,因为如果以前的一些工作失败,以后其他 mysql 代码可能会执行提交,从而使事情处于“奇怪”状态。但是在我去改变程序的行为之前,我想确保我理解当前的行为是什么。
php - PHP:PGSQL 驱动程序和自动提交?
我在一个项目中使用 pg_connect 和 pg_query。但我真的不确定 pg_connect 是否使用 AutoCommit 模式?
这是一个重要的问题,因为我需要在事务下写一些块,如果其中一个语句被服务器忽略,数据库就会不一致......
还有一个有趣的问题是执行后执行 pg_query 提交吗?
例如:
和
并且是
在 AutoCommit 模式下工作,所以开始和提交仍然是?
感谢您的帮助:dd
spring-mvc - Spring MVC JDBC DataSourceTransactionManager:即使在 readonly=true 之后也提交了数据
我目前正在开发一个 Spring MVC 应用程序。我已经配置了一个 JDBC TransactionManager,并且我正在使用 AOP XML 进行声明性事务管理。但是,即使我将方法配置为在只读 = true 上运行,它仍然会提交事务。
数据库:Oracle 10g
我的数据库-config.xml
我的控制器
如何防止自动提交?我还注意到,即使我不放任何事务管理代码,代码仍然会提交。请注意,事务建议是在我为 RuntimeException 放置 no-rollback-for 然后执行 1/0 时调用的,如果我放置与 rollback-for 相同的内容,它会正确提交数据并回滚。我还通过将线程置于睡眠状态来尝试查询超时,即使这样也不起作用,但我认为超时可能是针对实际查询的,所以没关系。提前致谢!
php - MySQL 自动提交 - 插入被忽略
我有一个 MySQl 数据库,里面有几个表,都是 UTF-8 和 MyISAM 存储。在 PHP 中,我正在解析一个将大量数据写入表的 XML 文件。我只使用简单的 Insert 语句和 mysqli 函数。
表上没有那么多读取操作,并且在插入期间没有一个操作。首先,性能非常非常慢,所以我在脚本开头添加了 SET AUTOCOMMIT = 0。
我现在遇到的问题是,我在第三个 foreach 循环中的所有插入都被忽略了,并且不会出现在 mysql 表中。在那之前的一切都很好。
所以我的问题是,我做错了什么,我该怎么做?
开启自动提交 = 插入所有内容,但速度非常慢 关闭自动提交 = 速度非常快,但忽略了很多插入
希望有人有想法并可以提供帮助。
transactions - spring 3.1:jdbcTemplate 自动提交为 false。
嗨,这是他们在 spring jdbctemplate 中将 autocommit 设置为 false 的一种方式。
事情不是事务(它们是回滚选项),我想在事务结束时提交查询。
所以而不是
插入——>提交——>回滚。
我想要插入 --> 失败 --> (不提交)。
hibernate - 如何使用 Spring MVC 在休眠中将自动提交设置为 false
我目前正在学习 Spring + Hibernate 的集成,到目前为止我正在让它工作。但是我遇到了不想在流程结束时提交事务的情况,因为我只想查看生成的 sql 语句以进行测试和调试。
我已经在我的休眠属性中添加了 false ,但是它仍然无法正常工作。
如果使用Spring处理休眠事务是否可以实现?因为在 hibernate 中使用传统事务,有可能,只要不调用 session.commit() 方法,所有的更新和插入都不会被保存;
目前我的服务层有这个代码:
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 公共类 EmployeeServiceImpl{
}
道层代码:
}
但是这里发生的是它确实提交了事务!但我不想仅仅为了测试和调试目的而提交事务。
我也试过 @Transactional(propagation = Propagation.SUPPORTS, readOnly = false) 而不是 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
但是这里发生的是它没有提交事务,但是员工的数量也没有增加。
所以,我期望在这里发生的是在插入员工表之前计算员工人数。然后插入员工表并再次计算员工人数,因此它将增加 1。但在流程结束时,我不想提交该插入!
各位大佬有idea吗?
我将非常感谢任何帮助!谢谢!
jdbc - SQL PreparedStatement 和自动提交
如果我使用具有“自动提交关闭”的 JDBC 连接创建准备好的语句,我是否需要调用 commit() 以使事务永久化或仅准备调用就足够了?请注意,我只想准备一个语句并保留它以供以后执行。
非常感谢!
ios - 核心数据:自动提交的默认状态
我想知道 iOS Core Data 中自动提交的默认状态是什么,是否可以更改它。我在官方文档中找不到任何提及。在 SO 我发现只有这个据说,原生 sqlite 框架具有确定自动提交状态的低级功能。如果默认设置,也许可以通过取消设置自动提交来提高性能?
oracle - JDBC 连接默认的 autoCommit 行为
我正在使用 JDBC 连接到 Oracle。我测试了connection.setAutoCommit(false)
vs connection.setAutoCommit(true)
,结果符合预期。
虽然默认情况下连接应该像autoCommit(true)
[如果我错了,请纠正我] 一样工作,但是connection.commit()
在调用之前没有插入任何记录。关于默认行为的任何建议?
mysql - 使用 BEGIN 和 START TRANSACTION 时的 MySQL AUTOCOMMIT 状态
我需要在我的 MySQL 项目中使用事务。但我不确定我是否必须使用mysql_query("SET AUTOCOMMIT=0");
。
我知道我有两个选择:
- 开始
- 开始交易
另外我听说这两个项目之一不需要使用AUTOCOMMIT = 0
.
请帮助我知道何时必须AUTOCOMMIT = 0
实际使用 WithBEGIN
或 with START TRANSACTION
?
谢谢你。