一、事務(wù)
?? 事務(wù):用于保證數(shù)據(jù)的一致性,它由一組相關(guān)的 DML 語句組成,該組的 DML 語句要么全部成功,要么全部失敗。
?? 例如:網(wǎng)上轉(zhuǎn)賬就是典型的要用事務(wù)來處理,用以保證數(shù)據(jù)的一致性。
二、事務(wù)和鎖
?? 當(dāng)執(zhí)行事務(wù)操作時( DML 語句),Oracle 會在被作用的表上加鎖,防止其他用戶改表的結(jié)構(gòu)。
三、提交事務(wù)
?? 當(dāng)執(zhí)行使用 commit 語句可以提交事務(wù),當(dāng)執(zhí)行了 commit 語句子后,會確認(rèn)事務(wù)的變化、結(jié)束事務(wù)、刪除保存點、釋放鎖,當(dāng)使用 commit 語句結(jié)束事務(wù)子后,其他會話將可以查看到事務(wù)變化后的新數(shù)據(jù)。
四、回退事務(wù)
?? 保存點是事務(wù)中的一點,用于取消部分事務(wù),當(dāng)結(jié)束事務(wù)時,會自動刪除該事務(wù)所定義的所有保存點,當(dāng)執(zhí)行 rollback 時,通過指定保存點可以回退到指定的點。
五、事務(wù)幾個重要操作
1 )設(shè)置保存點
savepoint a;
2 )取消部分事務(wù)
rollback to a;
3 )取消全部事務(wù)
rollback;
六、只讀事務(wù)
??指只允許執(zhí)行查詢的操作,而不允許執(zhí)行任何其他DML操作的事務(wù),使用只讀事務(wù)可以確保用戶只能取得某時間點的數(shù)據(jù)。
//設(shè)置只讀事務(wù)
set transaciton read only;