问题标签 [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.

0 投票
1 回答
1106 浏览

c++ - 禁用自动提交并且永远不会回滚会发生什么?

所以我继承了一个大型 c++ 代码库,它做了很多 mysql 工作。 该代码始终禁用自动提交,并且往往具有如下所示的功能:

显然,这里的意图是只有在查询成功时才会提交。但是,如果其中一个不是,会发生什么?最终,mysql 连接正确关闭,但代码中没有回滚。

那么当它关闭时,它基本上会提交任何成功的更改吗?还是会像什么都没发生一样回滚?

我的直觉说,如果第二个查询失败以“撤消”成功的第一个查询,则进行回滚是有意义的。所以这个函数最终是事务性的。

当然,我发现这段代码本质上是被破坏的,因为如果以前的一些工作失败,以后其他 mysql 代码可能会执行提交,从而使事情处于“奇怪”状态。但是在我去改变程序的行为之前,我想确保我理解当前的行为是什么。

0 投票
1 回答
3731 浏览

php - PHP:PGSQL 驱动程序和自动提交?

我在一个项目中使用 pg_connect 和 pg_query。但我真的不确定 pg_connect 是否使用 AutoCommit 模式?

这是一个重要的问题,因为我需要在事务下写一些块,如果其中一个语句被服务器忽略,数据库就会不一致......

还有一个有趣的问题是执行后执行 pg_query 提交吗?

例如:

并且是

在 AutoCommit 模式下工作,所以开始和提交仍然是?

感谢您的帮助:dd

0 投票
4 回答
6505 浏览

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 相同的内容,它会正确提交数据并回滚。我还通过将线程置于睡眠状态来尝试查询超时,即使这样也不起作用,但我认为超时可能是针对实际查询的,所以没关系。提前致谢!

0 投票
2 回答
1560 浏览

php - MySQL 自动提交 - 插入被忽略

我有一个 MySQl 数据库,里面有几个表,都是 UTF-8 和 MyISAM 存储。在 PHP 中,我正在解析一个将大量数据写入表的 XML 文件。我只使用简单的 Insert 语句和 mysqli 函数。

表上没有那么多读取操作,并且在插入期间没有一个操作。首先,性能非常非常慢,所以我在脚本开头添加了 SET AUTOCOMMIT = 0。

我现在遇到的问题是,我在第三个 foreach 循环中的所有插入都被忽略了,并且不会出现在 mysql 表中。在那之前的一切都很好。

所以我的问题是,我做错了什么,我该怎么做?

开启自动提交 = 插入所有内容,但速度非常慢 关闭自动提交 = 速度非常快,但忽略了很多插入

希望有人有想法并可以提供帮助。

0 投票
2 回答
19304 浏览

transactions - spring 3.1:jdbcTemplate 自动提交为 false。

嗨,这是他们在 spring jdbctemplate 中将 autocommit 设置为 false 的一种方式。

事情不是事务(它们是回滚选项),我想在事务结束时提交查询。

所以而不是

插入——>提交——>回滚。

我想要插入 --> 失败 --> (不提交)。

0 投票
1 回答
5422 浏览

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吗?

我将非常感谢任何帮助!谢谢!

0 投票
1 回答
23297 浏览

jdbc - SQL PreparedStatement 和自动提交

如果我使用具有“自动提交关闭”的 JDBC 连接创建准备好的语句,我是否需要调用 commit() 以使事务永久化或仅准备调用就足够了?请注意,我只想准备一个语句并保留它以供以后执行。

非常感谢!

0 投票
1 回答
184 浏览

ios - 核心数据:自动提交的默认状态

我想知道 iOS Core Data 中自动提交的默认状态是什么,是否可以更改它。我在官方文档中找不到任何提及。在 SO 我发现只有这个据说,原生 sqlite 框架具有确定自动提交状态的低级功能。如果默认设置,也许可以通过取消设置自动提交来提高性能?

0 投票
1 回答
38448 浏览

oracle - JDBC 连接默认的 autoCommit 行为

我正在使用 JDBC 连接到 Oracle。我测试了connection.setAutoCommit(false)vs connection.setAutoCommit(true),结果符合预期。

虽然默认情况下连接应该像autoCommit(true)[如果我错了,请纠正我] 一样工作,但是connection.commit()在调用之前没有插入任何记录。关于默认行为的任何建议?

0 投票
2 回答
16329 浏览

mysql - 使用 BEGIN 和 START TRANSACTION 时的 MySQL AUTOCOMMIT 状态

我需要在我的 MySQL 项目中使用事务。但我不确定我是否必须使用mysql_query("SET AUTOCOMMIT=0");
我知道我有两个选择:

  1. 开始
  2. 开始交易

另外我听说这两个项目之一不需要使用AUTOCOMMIT = 0.
请帮助我知道何时必须AUTOCOMMIT = 0实际使用 WithBEGIN或 with START TRANSACTION

谢谢你。