MYSQL數據庫--事務建立與存在週期

MySQL事務概述

在MySQL中,事務由單獨單元的一個或多個SQL語句組成。在這個單元中,每一個MySQL語句是相互依賴的。而整個單獨單元做爲一個不可分隔的總體,若是單元中一旦某條SQL語句執行失敗或產生錯誤,整個單元將會回滾。全部受到影響的數據將返回到事務開始之前的狀態;若是單元中的全部SQL語句均執行成功。則事務被順利執行。數據庫

事務4大屬性:服務器

原子性
一致性
孤立性
持久性ide

原子性

原子性意味着事物的總體性和不可分割性,這就相似化學中的原子,事務就具有這樣的屬性,其被認爲是一個不可分割的單元。日誌

一致性

在MySQL 事務處理過程當中,不管事務是徹底成功或是在中途因某些環節失敗而致使失敗,但事務使系統處於一致的狀態時,其必須保證一致性。事務

孤立性

孤立性是指每一個事務在本身的空間發生,和其餘發生在系統中的事務隔離,並且事務的結果只在它徹底被執行時才能看到。即便這樣的一個系統中同時發生多個事務,孤立性也能夠保證特定的事務在完成以前,其結果是不被公佈的。it

持久性

在MySQL中,即使是數據庫系統崩潰,一個提交的事務仍然在堅持。MySQL的持久性是經過一條記錄事務過程當中系統變化的二進制事務日誌文件來實現的。io

初始化事務

初始化MySQL事務,首先聲明初始化MySQL事務後全部的SQL語句爲一個單元。在MySQL中,應用START TRANSACTION命令來標記一個事務的開始。class

初始化事務的結構以下:二進制

START TRANSACTION;im

建立事務

初始化事務成功後,能夠建立事務。這裏以向名稱爲connection的數據表中插入一條記錄爲例,講解事務的建立。首先打開數據庫,選定某個數據庫,而後初始化事務,最後建立事務,向指定的數據表中添加記錄。

查看數據是否被正確輸入

事務建立成功後,建議經過SELECT語句查看數據是否被正確輸入。

提交事務

在用戶沒有提交事務以前,當其餘用戶鏈接MySQL服務器時,應用SELECT語句查詢結果,則不會顯示沒有提交的事務。當且僅當用戶成功提交事務後,其餘用戶纔可能經過SELECT語句查詢事務結果,由事務的特性可知,事務具備孤立性,當事務處在處理過程當中,其實MySQL並未將結果寫入磁盤中,這樣以來,這些正在處理的事務相對其餘用戶是不可見的。一旦數據被正確插入,用戶可使用COMMIT命令提交事務。

提交事務的命令:

COMMIT
一旦當前執行事務的用戶提交當前事務,則其餘用戶就能夠經過會話查詢結果。

撤銷事務(事務回滾)

撤銷事務,又被稱做事務回滾。即事務被用戶開啓、用戶輸入的SQL語句被執行後,若是用戶想要撤銷剛纔的數據庫操做,可以使用ROLLBACK命令撤銷數據庫中的全部變化。

事務的存在週期

事務的週期由用戶在命令提示符中輸入START TRANSACTION指令開始,直至用戶輸入COMMIT結束。

MYSQL數據庫--事務建立與存在週期

相關文章
相關標籤/搜索