问题标签 [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.
php - 如何在 PDO 类中添加 MySQL 事务?
我有一个 PDO 类,我创建了它来帮助我与 MySQL 服务器连接和通信。我正在尝试向类添加一个函数或方法,这将帮助我打开一个到 MySQL 的事务以及提交和回滚。我从未使用过提交和回滚。
我认为会以某种方式在每次调用此类时以某种方式停止自动提交,并在抛出错误时回滚并在每次此类 id 关闭时提交。
我的 2 个问题是:1)打开连接然后运行多个查询提交如果没有错误否则回滚然后关闭连接是个好主意吗?2)我如何设法将其添加到我现有的课程中?这是我当前的 PHP 类
收集通知后编辑是我需要的这种方式吗?
spring - 在受其他查询影响的石英作业期间 setAutoCommit(false) 会吗?
我有一个与 spring 数据源连接的石英作业来执行数据库分区。
我了解 setAutoCommit(false) 将启动事务,直到调用回滚或提交。但是我不知道该事务是否会包括用户在石英分区期间访问网页的来自 spring webservlet 的其他查询,从 setAutoCommit(false) 到 setAutoCommit(true)?
因此,如果任何 servlet 查询出错,这将导致回滚到我的整个分区事务。
java - 使用 MySQL 和 BoneCP 组合时 jdbc executeBatch 挂起
这是我从文件中读取 SQL 然后进行批量更新的代码
我试过的数据库:HSQLDB(in-process mode)
,,,HSQLDB(memory mode)
MySQL
数据库池我试过了:No Pooling(DriverManger)
,,,DBCP
BoneCP
我的应用程序按以下顺序运行:
几乎所有 DB 和 DB Pool 的组合都可以完美运行,没有conn.setAutoCommit(true);
我在代码中突出显示的,除了一个:BoneCP
+ MySQL
。为了使这种组合起作用,我必须将其放在代码conn.setAutoCommit(true);
的末尾。update()
否则,程序将在第三个进程(第二个批处理更新)开始时挂起。
我的猜测是它挂起是因为它等待write lock
释放,而我第一个持有锁的唯一可能原因batchUpdate()
可能是因为我将连接设置为不自动提交,这导致 BoneCP 不释放write lock
. 所以我添加了setAutCommit(true)
它并且它起作用了。该程序不再挂起。
所以,我只想问,我猜对了吗?还是因为其他原因?是否应该将其视为错误,因为没有其他组合会产生这种奇怪的行为?谢谢。
php - 带自动提交的 PHP
我写了一个代码来关闭 AutoCommit :
此代码的输出是:a:1 b: in else
但在表中,第一行被插入。我为此使用了 wamp。请让我知道我哪里出错了
php - Mysqli回滚不起作用
Mysqli 文档表明,如果调用autocommit(false)
返回 true,则它成功禁用了查询的自动提交。
尽管如此,如果我尝试回滚事务,创建如下代码,信息仍然被删除。
在这种情况下会出现什么问题?
mysql - 玩 1.2.4 自动提交
如何在 play 1.2.4 中启用 MySQL 自动提交?
我可以在 play 2.0 中找到自动提交,我尝试使用 db.default.autocommit 但徒劳无功。也通过代码,即 setAutoCommit(true) 但是在 JPA 尝试提交事务时出现异常请帮助。
vim - vimrc 自动提交,带消息提示
我在 vimrc 中使用以下命令在保存时自动提交。我觉得这非常有用。但是我不喜欢我每次都被相同的提交消息困住。
autocmd BufWritePost * execute ':silent ! if git rev-parse --git-dir > /dev/null 2>&1 ; then git add % ; git commit -m "Auto-commit: saved %"; fi > /dev/null 2>&1'
我希望在保存时收到提示,允许我提供提交消息或按 Enter 并在我赶时间时使用“自动提交:已保存 %”作为默认值。
我input()
在这个特定的命令中玩过并且没有任何运气。
我还尝试使用函数返回的值,但也无法让它工作。
php - php mysqli - 将事务隐藏在单个查询中
MySQli 不断指出我的“组合”查询的第一个选择部分存在语法错误,如下所示:
这是 php 中的“不允许”吗?是否必须使用 mysqli 函数,如下所示:
我已经在 mysql 中执行了查询(在使用 var_dump 按原样获取它之后),它执行得很好,所以我不认为真的存在语法问题,也许不允许在一个查询中“组合”查询单串?
我担心START TRANSACTION WITH CONSISTENT SNAPSHOT;
仅将 autocommit 设置为 false 将无法满足一些额外的条件。
mysql - 启动新事务会强制当前事务提交吗?
我有使用事务将数据写入数据库的服务器,如果所有查询都成功,它将提交,否则将回滚。现在我想让服务器的两个实例同时在同一个数据库和表上工作。当我阅读 mysql 的事务文档时,我注意到这句话:“开始一个事务会导致提交任何待处理的事务”。这是否意味着如果服务器 A 启动事务 A,而事务 A 尚未完成,服务器 B 启动事务 B,则事务 A 被强制提交?这对我来说没有意义。如果是这种情况,我如何确保在事务 A 正常完成之前不执行事务 B?SET autocommit = 0 可以替代这个问题吗?
java - AutoCommit 不适用于 jOOQ 2.6.1 和 Tomcat 池
我使用 jOOQ 2.6.1 和来自 Tomcat(文档)的池,并且我已将自动提交设置为 true。
然后我创建了一个 Apache DataSource 对象:
我使用 Spring 的LazyConnectionDataSourceProxy:
从 jOOQ 2.6.1 开始使用Factory:
例如,如果我做这样的选择:
... jOOQ 应该自动关闭连接!但是 jOOQ 并没有关闭连接。一段时间后,所有连接都被放弃了。
有人知道我的问题的解决方案吗?我希望 jOOQ 自动关闭连接!还是应该使用其他池化框架?
哪个更适合 jOOQ?