oracle中的事務


 事務

概述:通過sql 對數據庫進行操作時,同時執行成功或失敗,且數據完整性一致。

鏈接到oracle的用戶(例如plsql或sqlplus)會形成一個session, 此時對數據庫的更新操作,不會立即修改數據,不提交的情況下,可以進行回滾操作。 

 

rollback  回滾事務(數據被提交將無法回滾)

commit  提交事務

 

 例如:rollback  

----查詢結果是王五

> select * from table where    name='王五'; 

-----王五更新成李四

> update  table  set  name='李四'  where  name='王五';

----再次查詢王五,查不到數據;-查詢李四可以查詢到數據

> select * from table where    name in ('王五', '李四');

 

---此時進rollback操作,回滾數據

  > rollback;

---查詢王五可以查到結果,查詢李四查不到數據

>  select * from table where    name in ('王五', '李四');

 

 例如:commit  

----查詢結果是王五

> select * from table where    name='王五'; 

-----王五更新成李四

> update  table  set  name='李四'  where  name='王五';

----再次查詢王五,查不到數據;-查詢李四可以查詢到數據

> select * from table where    name in ('王五', '李四');

---此時進commit操作,回滾數據

  > commit;

---查詢王五可以查不到結果,查詢李四查到數據

>  select * from table where    name in ('王五', '李四');

---進行回滾

> rollback;

---在查詢數據,發現查詢結果還是李四,說明已經提交數據修改,無法回滾

>  select * from table where    name in ('王五', '李四');

 

死鎖

 多用戶同時修改一條數據,且最先修改數據的那個用戶的session未提交數據,則其他用戶的session無法修改這條數據,一直處於等待對方commit后

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM