91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么實現事物回滾

發布時間:2021-07-13 15:33:08 來源:億速云 閱讀:254 作者:Leah 欄目:大數據

這期內容當中小編將會給大家帶來有關MySQL中怎么實現事物回滾,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

事物的概念:

事物由一個單獨單元的一個或多個sql語句組成,如果其中一個語句不能完成,整個單元就會回滾,所有影響到的數據將返回到事物開始以前的狀態。因而,只有事物中的所有語句都成功執行才能說明這個事物被成功的執行。

這句話的本身沒有什么問題,但是請看下面的案例

mysql事務中有兩條insert語句,其中第二條語句是錯誤的,在運行完事務后,第一條仍然插進去了,代碼如下。

//創建表:CREATE TABLE `test_tab` (`f1`  int(11) NOT NULL ,`f2`  varchar(11)  DEFAULT NULL ,PRIMARY KEY (`f1`))ENGINE=InnoDB
//執行事務:START TRANSACTION;INSERT INTO test_tab VALUES    (1, '2');INSERT INTO test_tab VALUES    (1, '3');COMMIT;

 一開始認為只要把事務寫出來,最后用commit提交一下,數據庫會自動判斷這些語句是否全執行成功,如果成功則把所有的數據插入到數據庫,如果有一條失敗就自動回滾至原始狀態!顯然我認為錯了。

[SQL]START TRANSACTION;受影響的行: 0時間: 0.000s
[SQL]INSERT INTO test_tab VALUES (1, '2');受影響的行: 1時間: 0.001s
[SQL]INSERT INTO test_tab VALUES (1, '3');[Err] 1062 - Duplicate entry '1' for key 'PRIMARY'

我們看結果可以知道INSERT INTO test_tab VALUES (1, '3');這一句因為主鍵沖突運行失敗,從而這一條下面的commit也沒有執行。

需要注意的是:這時已經開啟了一個事務,并且已經執行了一條正確的插入語句,雖然沒有體現在數據庫中,但如果以后在該連接中又執行了一條commit 或begin或start transaction(新開一個事務會將該鏈接中的其他未提交的事務提交,相當于commit!)你會發現已經將剛才的INSERT INTO test_tab VALUES (1, '2');寫進了數據庫。

MySQL中怎么實現事物回滾

MySQL中怎么實現事物回滾

上述就是小編為大家分享的MySQL中怎么實現事物回滾了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼玛县| 同仁县| 沂源县| 内丘县| 长葛市| 临沧市| 张家界市| 监利县| 东明县| 鄂州市| 靖江市| 丰镇市| 乐业县| 嘉荫县| 马龙县| 南昌市| 武定县| 泰兴市| 屏山县| 和顺县| 定安县| 潞城市| 高青县| 韶山市| 田东县| 怀化市| 张家界市| 云阳县| 蓬溪县| 定日县| 双流县| 增城市| 苍山县| 建德市| 元氏县| 吉木乃县| 江孜县| 柘荣县| 吉木萨尔县| 枞阳县| 那曲县|