事務
概述:通過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后