更新時(shí)間:2023-02-07 15:38:06 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2650次
數(shù)據(jù)庫事務(wù)包含了數(shù)據(jù)庫上的一系列操作,事務(wù)使得數(shù)據(jù)庫從一個(gè)一致的狀態(tài)轉(zhuǎn)化到另一個(gè)一致的狀態(tài)。通常事務(wù)中的 SQL 會(huì)包含 DML 語句,也會(huì)包含查詢語句。如果一個(gè)事務(wù)中的 SQL 只有查詢語句,這個(gè)事務(wù)通常稱為只讀事務(wù)。
事務(wù)在沒有提交之前,可以使用 ROLLBACK 命令回滾事務(wù)
事務(wù)控制語句
基本的事務(wù)控制語句有:
BEGIN:顯式開啟一個(gè)事務(wù)。此語句在使用過程中可選:
租戶會(huì)話的參數(shù) autocommit 值設(shè)置為 0 時(shí),表示關(guān)閉事務(wù)自動(dòng)提交功能,不需要顯式發(fā)出 BEGIN 命令來標(biāo)識(shí)多個(gè) SQL 組成一個(gè)事務(wù)。。
租戶會(huì)話的參數(shù) autocommit 值設(shè)置為 1 時(shí),表示開啟事務(wù)自動(dòng)提交功能,該模式下,每條 SQL 都是一個(gè)獨(dú)立的事務(wù)。如果要多個(gè) SQL 組成一個(gè)事務(wù),可以通過 BEGIN 命令顯式開啟一個(gè)事務(wù),同時(shí)會(huì)禁用事務(wù)自動(dòng)提交功能,直到執(zhí)行 COMMIT 或 ROLLBACK 語句,才會(huì)恢復(fù)到自動(dòng)提交模式。
SAVEPOINT:可以在事務(wù)過程中標(biāo)記一個(gè)"保存點(diǎn)",事務(wù)可以事后選擇回滾到這個(gè)保存點(diǎn)上。保存點(diǎn)是可選的,一個(gè)事務(wù)過程中也可以設(shè)置多個(gè)保存點(diǎn)。
COMMIT:提交并結(jié)束當(dāng)前事務(wù),讓事務(wù)所有修改持久化并生效,清除所有保存點(diǎn)和釋放事務(wù)持有的鎖。
ROLLBACK:回滾整個(gè)事務(wù)已做的修改或者只回滾某個(gè)保存點(diǎn)之后事務(wù)已做的修改,清除回滾部分包含的所有保存點(diǎn)和釋放事務(wù)持有的鎖。
在 obclient 命令環(huán)境下,可以在 SQL 提示符后發(fā)起事務(wù)控制命令,也可以修改會(huì)話級(jí)別的 autocommit 參數(shù)來控制事務(wù)是否自動(dòng)提交。
通過 SET autocommit 設(shè)置變量時(shí),當(dāng)前會(huì)話立即生效,斷開鏈接之后被設(shè)置的變量會(huì)失效。
通過 SET GLOBAL autocommit 設(shè)置租戶級(jí)別的變量時(shí),需要斷開鏈接才生效。
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"關(guān)于事務(wù)控制語句大家是怎么理解的呢",希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您務(wù)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743