[英]Postgresql: rolling back to savepoint if it exists
在處理 DAL 類型的系統時,我遇到了保存點安全問題:在進程開始時創建保存點,並在成功完成時釋放或在錯誤時回滾。
然而,雖然這不正常,但整個事務有可能被正在運行的進程提交(或回滾)。 這將刪除我們試圖釋放/回滾的保存點。 這個問題可以通過在發布/回滾周圍放置另一個保存點來解決,但顯然不可能SAVEPOINT
錯誤的事務。
有沒有辦法對此進行最大努力的處理,以便保存點在存在時被釋放/回滾,否則不會發生任何事情? 根據In Postgres,如何獲取當前定義的保存點列表? 當時沒有辦法去 LBYL,現在似乎也沒有辦法了。
您可以嘗試使用 pg_xlogdump,將結果批量復制到表中,然后讀取該表以查找這些命令...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.