管理數據事務

 

  • 概念和特徵

概念:數據庫

        事務時對數據庫執行的一個操做單元;code

特徵:對象

        全部的事務都有開始和結束事務

        事務能夠被保存或撤銷it

        若是事務在中途失敗,事務中的任何部分都不會被記錄到數據庫io

  • 機制

一、事務控制命令至與DML命令INSERT,UPDAT和DELETE配合使用,table

二、事務完成後,事務信息會被保存在數據庫裏的指定區域或者臨時回退區域,直到事務控制命名出現,所作的修改要麼被保存在數據庫,要麼被放棄,而後臨時回退區域被清空語法

三、若是臨時回退區域沒有空間,不能保存數對數據庫所作的修改,數據庫極可能會掛起,禁止進一步的事務操做命名

  • COMMIT
使用commit命令提交
delete from table_name
where column_name = 'value'
commit

 

注:不一樣的實現對COMMIT命令的提交有所不一樣數據

一、Microsoft SQL Server中,除非事務正在運行,否者語句會被自動提交

二、有些不是經過COMMIT來提交的,而是由退出數據庫的操做引發提交

三、MySQL,在執行SET TRANSACTION命令以後,在數據庫收到COMMIT或ROLLBACK以前,自動提交功能是不會恢復的

  • ROLLBACK
rollback命令用於撤銷尚未被保存到數據庫的命令,它只能用於撤銷上一個commit或rollback命令以後的事務

用法與commit同樣,

 

  • SAVEPOINT 和 ROLLBACK TO SAVEPOINT

事務語句之間建立一個保存點,將大量事務操做劃分爲較小的,更易於管理的組

語法命名:savepoint savepoint_name

savepoint sp1;
Savepoint created.
delete from table_name
where column_name1 = 'value'

savepoint sp2;
Savepoint created.
delete from table_name
where colmn_name2 = 'value'

退回到名爲sp1的保存點
rollback  to sp1;

注:

一、保存點的名稱必須是惟一的,可是能夠與表或者其餘對象名稱相同

二、Microsoft SQL Sever的語法稍微不一樣,使用SAVE TRANSACTION,如:save transaction savepoint_name

  • RELEASE SAVEPOINT

release savepoint savepoint_name 刪除建立的保存點

Microsoft SQL Sever 不支持該命令,當事務完成後,保存點會自動刪除,整個過程沒必要使用COMMIT或者ROLLBACK命令

  • SET TRANSCTION

這命名用於初始化數據庫事務,指定事務的特習慣

    set transaction read write;讀寫

    set transaction read only;只讀

相關文章
相關標籤/搜索