Oracle中的commit與rollback

SQL語言分爲五大類:

DDL(數據定義語言) - Create、Alter、Drop 這些語句自動提交,無需用Commit提交。

DQL(數據查詢語言) - Select 查詢語句不存在是否提交問題。

DML(數據操縱語言) - Insert、Update、Delete 這些語句需要Commit才能提交。

DTL(事務控制語言) - Commit、Rollback 事務提交與回滾語句。

DCL(數據控制語言) - Grant、Revoke 授予權限與回收權限語句。


1.commit

在數據庫的插入(insert)、刪除(delete)和修改(update)操作時,只有當事務在提交到數據庫時纔算完成。在Oracle 數據庫中,在事務提交前,只有操作數據庫的當前session能有權看到所做的事情,別的session在另外一個session最後提交完成時才能看見所修改的內容。commit就是確定提交的意思,比如你用update更新表中一條記錄,而不commit,那麼別的賬戶在查詢這個表時就查詢不到你update的記錄,自己是可以查詢到的;而commit後則其他賬戶就能查詢到你update的記錄了。

2.rollback
rollback:就是回退的意思,比如你用update更新表中一條記錄,這時你查詢這個表時,則發現表已經更新(注意別的用戶查詢這個表會發現表未更新);再rollback後,你再查詢表時,發現表還是更新之前的樣子。

在沒有進行commit之前,是對內存的操作,可以rollback;如果commit,則修改了物理地址的數據,則不能rollback了。
3.作用的範圍與注意點

兩者只對insert、update、delete(DML數據操縱語句)操作有效。

注意點:
3.1、先commit再rollback,則rollback相當於不起作用。
3.2、若現delete再select再rollback,,則rollback會撤回delete操作。
3.3、其他用戶查詢你的表示看到的是commit之後的表,而你看到的是最新操作的表。
 

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