事務——ACID(事務處理的撤銷)

事務:數據庫執行事件的最小單元(打開SQL PLUS 相當於一個事務開始了)

A:原子性      C:一致性(事務執行前後一致)       I:獨立性              D:持久性

撤銷DML事務處理

可撤銷語句:所有dml語句(insert,update,delete)
ddl,dcl等都不可以撤銷
能寫在事務中的語句只有select和DML語句
因爲如果出現非DML並且不是select,之前的操作就會被提交,不可撤銷(例:創建下一個table時,前一個table就會被提交,因爲create不是DML語句)

執行事務時如果沒有非DML語句執行,關閉頁面時因爲沒有提交,此事務所作的操作不會保留,要保留用commit;語句。

沒有提交的事務,別人看不到(除當前事務外)

savepoint a;  設保存點,a爲保存點

回滾操作:
rollback;    撤消之前事務所做的操作
rollback to a;

commit;  提交當前所做修改,之後不可回滾

select * from shangpin
where name='白酒1'
for update;                 給where語句相關的資源加鎖

當一個事務給字段加鎖後,其他事務不能對它進行訪問。
死鎖的例子:兩個事務都要對A和B進行操作,一個先縮A,另一個先鎖B,然後再鎖另外一個時會出現死鎖的現象
但SQL遇見死鎖時會強制進行處理,讓一個事務退出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章