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 `innodb_flush_log_at_trx_commit` 参数
MySQL `innodb_flush_log_at_trx_commit` 参数
|
SQL 关系型数据库 数据库
RDS SQL Server 如何设置为快照隔离级别 READ_COMMITTED_SNAPSHOT
RDS SQL Server 如何设置为快照隔离级别 READ_COMMITTED_SNAPSHOT
|
SQL 关系型数据库 MySQL
Mysql——事务详解(Transaction)
Mysql——事务详解(Transaction)
Mysql——事务详解(Transaction)
|
SQL 关系型数据库 MySQL
MySQL:Innodb 关于Handler_commit每次DML增加2的原因
简单描述一下,也是本人的问的,水平有限,如果有误请谅解。 原问题如下@mysqDBA: 请教一个问题。我每次insert一条语句,查询show global status like 'Handler_commit'; 发现每次增加值是2,难道不应该是1吗? 最简单的insert into tab.
2126 0