我有一個情況我必須:回滾DML失敗
- 禁用FK約束一些表,
- 用於由外鍵引用的主鍵更改字段值(也更新爲匹配),
- 重新啓用從步驟FK約束1.
的問題是,如果從第2步中的變化做了主鍵字段不consi重新啓用在步驟3中的約束可能會失敗帶有外鍵引用字段的支架。我想趕上這種情況並回滾步驟2中所做的更改。據我所知,運行DDL語句(如啓用約束)首先會發出提交,之後我無法回滾步驟2中所做的更改。
有沒有辦法在一個獨立的腳本中實現這一點?該過程應該完全通過或回滾,就好像什麼也沒發生一樣。還是有沒有辦法可以恢復到以前的狀態,而不需要備份/恢復整個數據庫?
這是一個單用戶進程嗎?如果是這樣,您可能可以使用閃回表恢復到相關表的以前版本。 –