pb之autocommit

简介:         autocommit顾名思义自动提交的意思,默认情况下autocommit是false,需要手动commit或者rollback来结束当前事务。

        autocommit顾名思义自动提交的意思,默认情况下autocommit是false,需要手动commit或者rollback来结束当前事务。如果将autocommit设置为true,每执行完一条sql语句(update,insert)pb都会自动commit或者rollback事务。对信息系统来说,业务逻辑往往比较复杂,一般都是很多sql语句组成一个事务,所以说自动commit会出现数据的逻辑错误(部分commit,部分rollback),所以对于信息系统来说事务操作的时候,一定要将autocommit设置成false,人为去commit或者rollback数据。

        需要注意的是,事务对象的autocommit属性对oracle数据库是不起作用的,对oracle数据库来说,connect命令开启一个事务,disconnect命令结束事务,每次commit或者rollback的时候,都会结束当前事务,开启一个新的事务。所以如果pb信息系统连接的是oracle数据库,即便autocommit设置为true,也要手动执行commit或者rollback,否则会出现数据库阻塞的情况。

目录
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
MySQL数据库——事务操作-begin-commit-rollback
MySQL数据库——事务操作-begin-commit-rollback
41 1
|
SQL 存储 数据库
|
存储 关系型数据库 MySQL
MySQL InnoDB的插入缓冲Insert Buffer
MySQL InnoDB的插入缓冲Insert Buffer
158 0
MySQL InnoDB的插入缓冲Insert Buffer
使用ST03N查看指定user的transaction 性能数据
使用ST03N查看指定user的transaction 性能数据
256 0
使用ST03N查看指定user的transaction 性能数据
|
MySQL 关系型数据库
MySQL:begin后事务为什么不提交
今天顺便看了一下,主要流程就是跟踪为什么begin后事物不会提交,最后发现在:MYSQL_BIN_LOG::commit 函数中包含这个判断 if (!cache_mngr->trx_cache.is_binlog_empty() && ending_trans(thd, all) && !trx_stuff_logged) 如果begin的话ending_trans(thd, all) 将会返回为false,也就不会调用 order_commit流程了。
4261 0
MS SQL 锁与事务
MS SQL 锁与事务加锁的主要目的是为了防止并发操作时导致的数据不一致等问题,锁分为共享锁(S)、更新锁(U)、排他锁(X),共享锁与更新只是单向兼容?传说中的单相思? 事务 事务能保证数据操作的原子性,要么内部操作都提交,要么都回退。
986 0
|
SQL 关系型数据库 MySQL
MySQL:Innodb 关于Handler_commit每次DML增加2的原因
简单描述一下,也是本人的问的,水平有限,如果有误请谅解。 原问题如下@mysqDBA: 请教一个问题。我每次insert一条语句,查询show global status like 'Handler_commit'; 发现每次增加值是2,难道不应该是1吗? 最简单的insert into tab.
2136 0
|
存储 关系型数据库 MySQL