根據Postgres文檔 - 準備好後,事務可以稍後使用COMMIT PREPARED或ROLLBACK PREPARED分別提交或回滾。這些命令可以從任何會話中發出,not only the one that executed the original transaction.
如何使PREPARE TRANSACTION工作
我試圖從CSV數據導入到數據庫表中,爲此,我現在用的是
COPY tablename [ (column [, ...]) ] FROM { 'filename' }
這一切都是在一個shell腳本來完成。 現在的問題是,我執行命令psql
,並通過-c
選項通過這個命令的參數(我通過命令
在命令prepare transaction 'some-id'
開始交易)。
我想創建一個保存點並回滾它以避免任何錯誤。
後在shell腳本中一些其他的任務,我檢查錯誤,以前PSQL語句產生了,當我再嘗試使用命令
Prepared Rollback 'transaction-id'
(在單獨psql command with sql statements
)
它回滾報告「No "transaction-id" found
」
我是否在概念錯誤或缺少過程中的東西?
發生這種情況是因爲我多次發出psql
命令,並且每次都導致新的事務?