我在Perl中編程,並與我的postgres數據庫有一個現有的連接(編程)。建立連接後,我不控制連接代碼,我想將自動提交設置爲關閉。postgresql連接並設置自動提交關閉
這是怎麼回事?當我以交互方式進行時,我沒有看到任何變化。我設置自動提交,然後做一個插入,我看到了變化。我做了回滾,我得到沒有交易存在。
我想設置自動提交,做我的工作,然後提交。如何通過現有的連接完成這項工作?
感謝 禮
我在Perl中編程,並與我的postgres數據庫有一個現有的連接(編程)。建立連接後,我不控制連接代碼,我想將自動提交設置爲關閉。postgresql連接並設置自動提交關閉
這是怎麼回事?當我以交互方式進行時,我沒有看到任何變化。我設置自動提交,然後做一個插入,我看到了變化。我做了回滾,我得到沒有交易存在。
我想設置自動提交,做我的工作,然後提交。如何通過現有的連接完成這項工作?
感謝 禮
在連接的中間不應禁用自動提交,因爲它是意外且容易出錯。
最好是顯式啓動和使用這樣的事情結束交易:
$dbh->begin_work();
foreach($statement1, $statement2, $statement3) {
$dbh->execute($_)
or do { $dbh.rollback(); return -1 }
}
$dbh->commit();
begin_work()
將暫時關閉自動提交,直到下一提交或回滾。
但如果你認爲你真的需要讓自己受到傷害,那麼Perl將不會阻止你:
$dbh->{AutoCommit} = 0;
正是我所需要的,非常感謝。 – reza 2010-11-05 15:31:02
你不能使用常規的交易的任何原因? – 2010-11-03 16:04:31