標籤:
一,oracle的事務:
是指對資料操作的一系列動作的統稱.即:事務的任務便是使資料庫從一種狀態變換成為另一種狀態,這不同於檔案系統,它是資料庫所特用的。
事務有四大特性(ACID):
1,原子性(atomicity),
事務中的所有任務要麼全部成功,要麼全部失敗.不能存在部分成功,部分失敗.比如銀行轉賬,A向B轉200元,A賬戶餘額少200元,B賬戶餘額多200元.不能出現A賬戶少200元而B賬戶餘額沒多出200元.
2,一致性(consistency),
事務將資料庫從一種一致狀態轉變為下一個一致狀態.
比如轉賬,A賬戶和B賬戶都成功的更新了餘額,則這個轉賬操作才是成功完成的,如果任何一個操作發生而另一個沒有發生,就會導致資料出現不一致,而使用事務可以確保資料的一致性.
3,隔離性(isolation),
一個事務的影響在該事務提交到資料庫前對其他事務都是不可見得.比如轉賬,當將A賬戶的餘額減少時,由於還沒有更新B賬戶,事務沒提交,其他使用者在查看A賬戶時,不會看到A賬戶餘額已經減少,只有在轉賬成功完成時,才會看到效果,這使得事務好像是串列執行的一樣
4,持久性(durability),
事務一旦提交,其所做的更改就是永久性的.
資料庫通過其恢複機制,確保在事務中所作的更改不會丟失.
事務結束的幾種情況:
1,遇到commit,rollback語句時,提交或者復原事務.
2,當使用者退出Oracle工具時,
3,當機器失效或者是系統崩潰時.
二,事務的管理
commit,提交自上一次commit或者是rollback一來,所有當前的改變,並且釋放所有的鎖
rollback,復原自上一次commit或者是rollback一來,所有當前的改變,並且釋放所有的鎖
rollback to savepoint ,復原改變到一個已經儲存的儲存點,並且釋放所有該範圍內的鎖
savepoint,建立一個儲存點,允許完成部分復原操作
set transaction,允許開始一個唯讀或者讀寫回話,建立一個隔離等級,或者將當前的事務賦給一個特定的復原段
lock table,允許使用特定的模式鎖定整個資料庫表,這將覆蓋預設行層級的鎖定,
使用commit提交事務:
Oracle之事務