您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關數據庫事務控制語句是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在MYSQL命令行的默認設置下,事務都是自動提交的,即執行SQL語句后就會馬上執行COMMIT操作。
因此要顯示的開啟一個事務必須使用命令BEGIN和STARTTRANSACTION,或者執行命令SETAUTOCOMMIT=0,以禁用當前會話的自動提交。
1)STARTTRANSACTION|BEGIN
顯示的開啟一個事務。在存儲過程中,MYSQL數據庫的分析器會自動將BEGIN識別為BEGIN...END,因此在存儲過程中只能使用STARTTRANSACTION語句來開啟一個事務。
2)COMMIT
要想使用這個語句的最簡形式,只需發出COMMIT。COMMIT會提交事務,并使已對數據庫進行的所有修改成為永久性的。COMMIT和COMMITWORK語句基本上是一致的,都是用來提交事務。
不同的是COMMITWORK用來控制事務結束后的行為是CHAIN還是RELEASE的。如果是CHAIN方式,那么事務就變成了鏈事務。用戶可以通過參數completion_type來進行控制,默認該參數是0,表示沒有任何操作。
在這種設置下,COMMIT和COMMITWORK是完全等價的。當參數值為1時,COMMITWORK等價于COMMITANDCHAIN,表示馬上自動開啟一個相同隔離級別的事務。
當參數值為1時,COMMITWORK等價于COMMITANDRELEASE。當提交事務后會自動斷開與服務器連接。
3)ROLLBACK
回滾會結束用戶的事務,并撤銷正在進行的所有未提交的修改。
4)SAVEPOINTidentifiter
SAVEPOINT允許用戶在事務中創建一個保存點,一個事務可以有很多個保存點。
5)RELEASESAVEPOINTidentifier
刪除一個事務的保存點,當沒有一個保存點執行這語句時,會拋出一個異常。
6)ROLLBACKto[SAVEPOINT]identifier
這個語句與SAVEPOINT命令一起使用。可以把事務回滾到標記點,而不回滾到此標記點之前的任何工作。
注意:雖然有ROLLBACK,但是它并沒有真正的結束一個事務,因此即使執行了ROLLBACKTOSAVEPOINT,之后也需要顯示的運行COMMIT或ROLLBACK命令。
7)SETTRANSACTION
這個語句用來設置事務的隔離級別。InnoDB存儲引擎提供的事務隔離級別有READUNCOMMITTED、READCOMMITTED、REPEATABLEREAD和SERIALIZABLE。
關于數據庫事務控制語句是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。