1. 程式人生 > >MySQL資料庫事務基本操作

MySQL資料庫事務基本操作

這篇日誌是自己學習了MySQL資料庫的事務之後,總結的一點心得體會。都是一些非常基礎的知識點。如能幫助諸位初學者,那真是我的榮幸。
資料庫的事務,很多的部落格也都有了詳細的介紹。最基本的事務特性啊(ACID)這裡就不再贅述。
首先,如果想要開啟MySQL資料庫的事務,需要我們手動設定。

**1、開啟資料庫的事務**
我們在Navicat中,新建一個查詢,輸入:`start transaction;`

**2、刪除表中的某個使用者**
delete from tb_user where userId = 1;
這時,我們檢視資料的話,userId為1的資料仍然存在。但是如果用select語句查詢的話,這條資料是查不到的。

**3、恢復刪除的使用者(rollback 操作)**
rollback;
**4、commit 操作**
commit;
執行了commit操作之後,rollback操作將無效。


在多執行緒情況下,事務併發可能會引發以下問題:
    1、髒讀:一個事務讀取到另一個事務未提交的更新資料
    2、不可重複讀:一個事務執行期間兩次讀取相同資料但是內容不一 致,原因是兩次讀取期間有其它事務對資料做了更新並提交。也可以說這個事務讀到了另外一個事務已經提交的更新資料。
    3、虛讀/幻影讀:一個事務執行期間兩次讀取相同資料但是內容不一 致,原因是兩次讀取期間有其它事務對資料進行了插入或刪除了符合條件的資料並提交。也可以說這個事務讀到了另外一個事務已經提交的新插入或刪除的資料。
水平所限,目前我只知道可以通過設定事務的隔離級別來解決以上問題。但本篇的重點是資料庫的基本操作,所以不在此展開。