概念:數據庫
事務時對數據庫執行的一個操做單元;code
特徵:對象
全部的事務都有開始和結束事務
事務能夠被保存或撤銷it
若是事務在中途失敗,事務中的任何部分都不會被記錄到數據庫io
一、事務控制命令至與DML命令INSERT,UPDAT和DELETE配合使用,table
二、事務完成後,事務信息會被保存在數據庫裏的指定區域或者臨時回退區域,直到事務控制命名出現,所作的修改要麼被保存在數據庫,要麼被放棄,而後臨時回退區域被清空語法
三、若是臨時回退區域沒有空間,不能保存數對數據庫所作的修改,數據庫極可能會掛起,禁止進一步的事務操做命名
使用commit命令提交 delete from table_name where column_name = 'value' commit
注:不一樣的實現對COMMIT命令的提交有所不一樣數據
一、Microsoft SQL Server中,除非事務正在運行,否者語句會被自動提交
二、有些不是經過COMMIT來提交的,而是由退出數據庫的操做引發提交
三、MySQL,在執行SET TRANSACTION命令以後,在數據庫收到COMMIT或ROLLBACK以前,自動提交功能是不會恢復的
rollback命令用於撤銷尚未被保存到數據庫的命令,它只能用於撤銷上一個commit或rollback命令以後的事務 用法與commit同樣,
事務語句之間建立一個保存點,將大量事務操做劃分爲較小的,更易於管理的組
語法命名: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 savepoint_name 刪除建立的保存點
Microsoft SQL Sever 不支持該命令,當事務完成後,保存點會自動刪除,整個過程沒必要使用COMMIT或者ROLLBACK命令
這命名用於初始化數據庫事務,指定事務的特習慣
set transaction read write;讀寫
set transaction read only;只讀