1. 程式人生 > >oracle中的事務

oracle中的事務

llb where col 數據 sqlplus spa 用戶 update ble

事務

概述:通過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後

oracle中的事務