2013-07-18 60 views
-1

從迄今爲止我所做的研究。我發現在postgrsql函數中不能從內部進行事務處理。他們不得不被一段可以交易的代碼調用。我們有要求在db級別引入事務。任何幫助,將不勝感激。postgtresql的功能交易

+1

當您參考「研究」時,請提供*鏈接*以支持您所說的內容。另外,*在問題中始終包含您的確切PostgreSQL版本*。 –

+0

我正在使用9.3。 – user433023

回答

1

行之間的閱讀,我認爲你想要自主subsensactions。 PostgreSQL目前不支持這些(9.3或更高版本)。標準的解決方法是使用DBLink讓PostgreSQL與自己建立新的連接。這不是超高效的,但它的工作原理。

請參閱this blog提供了一個使用dblink extension來實現自主子事務的有用示例。

+0

謝謝克雷格。我試過了。我也遇到了這種方法的問題。當我使用dblink和其中一個語句失敗。它沒有提交。這是好事。但它也不會運行dblink_disconnect命令。所以下次當我糾正我的代碼後。我必須刪除擴展名dblink。然後完全重做。但我會進一步探討。 – user433023

+0

變通可能會在另一個函數中調用dblink。並在涉及事務代碼的每個函數調用之後調用此函數。對? – user433023

+0

@ user433023斷開並重新連接。當'psql'會話結束時,其餘的dblink會話也會結束。 –