rez*_*eza 1 postgresql perl autocommit dbi
我在perl中编程并且与postgres数据库有一个现有的连接(progammatically).建立连接后,我不控制连接代码,我想将自动提交设置为关闭.
怎么做到这一点?当我以交互方式进行时,我看不到任何变化.我设置了autocommit然后执行插入,我看到了更改.我做回滚,我得到的是没有交易存在.
我想设置autocommit,做我的工作,然后提交.如何通过现有连接实现这一目标?
谢谢Reza
您不应该在连接中间禁用自动提交,因为它是意外的并且容易出错.
最好的方法是使用以下内容显式启动和结束事务:
$dbh->begin_work();
foreach($statement1, $statement2, $statement3) {
$dbh->execute($_)
or do { $dbh.rollback(); return -1 }
}
$dbh->commit();
Run Code Online (Sandbox Code Playgroud)
begin_work() 将暂时关闭自动提交,直到下次提交或回滚.
但如果你认为你真的需要伤害自己,那么perl不会阻止你:
$dbh->{AutoCommit} = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3775 次 |
| 最近记录: |