SQLite中有沒有一種方法可以在提交最新的事務之後從本質上撤消它?可以在提交SQLite事務後回滾嗎?
我想恢復數據庫到事務或保存點之前的狀態。我已經看過了回滾命令,但它看起來僅限於回滾待定事務。
編輯 我能創建一個名爲「撤消」保存點,並開始等待下一個動作,或者回滾如果我需要撤消之前發佈呢?
SQLite中有沒有一種方法可以在提交最新的事務之後從本質上撤消它?可以在提交SQLite事務後回滾嗎?
我想恢復數據庫到事務或保存點之前的狀態。我已經看過了回滾命令,但它看起來僅限於回滾待定事務。
編輯 我能創建一個名爲「撤消」保存點,並開始等待下一個動作,或者回滾如果我需要撤消之前發佈呢?
除了在交易之前進行在線備份之外,我不知道它支持「時間機器」及時倒退。
難道你不能放置一些應用程序邏輯來記錄足以在審計追蹤表中撤消應用的操作嗎?
我不確定您是否使用JDBC 3.0。如果你是那麼它支持保存點。 http://www.ibm.com/developerworks/java/library/j-jdbcnew/
我不是SQLite專家,但據我所知,只能在交易中保存點,而不是相反。
而AFAIK,閱讀在線文檔,保存點和事務處理本質上是相同的,區別在於寫保存點的事務堆棧。您可以打開一定數量的保存點(記住堆棧順序),並在檢查完成後進行事務提交。我不知道這是否會幫助你。
「只能在交易中保存點」 - 我認爲這是不正確的。剛剛嘗試了SQLite 3.8.7.4的shell命令。它成功解除了在事務外部創建表和刪除行的操作。 – WindRider 2015-09-04 11:55:53
原來我不是,但保存點可能適用於我,如果我是。 – CodeFusionMobile 2010-11-01 18:57:19