前景提要:配置多資料來源,配置事務,刪除資料並重新新增資料,新增出現問題後無法回滾。
檢查結果:刪除使用的truncate方法,該方法在plsql中執行無需submit。無論是oracle資料庫,還是mysql資料庫,刪除使用truncate放,都無法利用事務回滾。
知識點:
1.刪除表中的資料的方法有delete,truncate, 其中truncate table用於刪除表中的所有行,而不記錄單個行刪除操作。truncate table 與沒有 where 子句的 delete 語句類似;但是,truncate table 速度更快,使用的系統資源和事務日誌資源更少。
2.drop刪除表及資料
3.delete是dml語句,不會自動提交。drop/truncate都是ddl語句,執行後會自動提交。
4.語法
drop table [table_name]
truncate table [table_name] 無where
delete from [table_name] where --(where條件可有可無,一條一條刪除)
5.truncate不能刪除的
異常被 」吃「 掉導致事務無法回滾
我們在處理異常時,有兩種方式,要麼丟擲去,讓上一層來捕獲處理 要麼把異常 try catch 掉,在異常出現的地方給處理掉。就因為有這中 try catch,所以導致異常被 吃 掉,事務無法回滾。我們還是看上面那個例子,只不過簡單修改一下 service public class userservi...
oracle事務鎖導致事務無法提交的問題
今天在修改bug的過程中,一條更新資料的sql執行怎麼也執行不了,進入貌似 排隊 的情況,一直處於等待的狀態,第一直覺是事務鎖起到壞作用,後在專案組高手的協助下找到了原因,是資料被鎖住了。一般查詢是否被鎖住可以做如下操作 以系統資料庫管理員的身份登入 無連線啟動sqlplus sqlplus nol...
oracle事務鎖導致事務無法提交的問題
以系統資料庫管理員的身份登入 無連線啟動sqlplus sqlplus nolog 以sysdba的身份連線資料庫 conn as sysdba 檢視被鎖的資料物件 查詢被鎖的資料物件 select t2.username,t2.sid,t2.serial t2.logon time from v ...