MySQL事務知識要點(二)

來源:互聯網
上載者:User

標籤:持久性   系統   出現   應用程式   sel   使用   修改   持久   llb   

要點一中介紹過了事務的基本知識,那麼,在MySQL中又是如何處理事務的呢?

       事務是由一組SQL語句構成的,它由一個使用者輸入時,並以修改成持久的或者滾到原來狀態而終結。在MySQL中,在一個會話開始時,系統變數AUTOCOMMIT值為1,即自動認可功能是開啟的,當使用者每執行一條SQL語句後,該語句對資料庫的修改就立即被提交成持久性修改儲存到磁碟上,一個事務也就結束了。因此,使用者必須關閉自動認可,事務才能由多條SQL語句組成。使用如下語句:

  SET @@AUTOCOMMIT=0;

  執行此語句後,必須明確地指示每個事務的終止,事務中的SQL語句對資料庫所做的修改才能成為持久化修改。

       例:執行如下語句:

  delete from student where 學號=‘3160707001’

  select * from student;

       從執行結果中發現,表中已經刪去了一行。但是這個修改並沒有持久化,因為自動認可已經關閉了。使用者可以通過ROLLBACK撤銷這一修改,或者使用COMMIT語句持久化這一修改。

       下面將具體介紹如何處理一個事務:

1.開始事務  

  當一個應用程式的第一條SQL語句或者在COMMIT或ROLLBACK語句後面的第一條SQL執行後,一個新的事務也就開始了。另外還可以使用一條START TRANSACTION語句來顯式地啟動一個事務。

   文法格式:START TRANSACTION  |  BEGIN WORK

    一條BEGIN WORK語句可以用來替代START TRANSACTION語句,但是START TRANSACTION更常用一些。

2.結束事務

COMMIT語句是提交語句,它使得自從事務開始以來所執行的所有資料修改成為資料庫的永久部分,也標誌著一個事務的結束,其文法格式為:

  COMMIT [WORK] [AND  [NO]  CHAIN]    [[NO]  RELEASE]

3.撤銷事務

ROLLBACK是撤銷語句,它撤銷事務所做的修改,並結束當前這個事務。文法格式:、

ROLLBACK  [WORK] [AND  [NO]  CHAIN]    [[NO]  RELEASE]

在前面的舉例中,若在最後加上以下這條語句

rollback work;

執行完這條語句後,前面的刪除動作將被撤銷,可用select語句查詢該行資料是否還原。

4.復原事務

除了撤銷整個事務,使用者還可以使用ROLLBACK TO語句使交易回復到某個點,在這之前需要用SAVEPOINT語句來設定一個儲存點。

SAVEPOINT文法格式:

SAVEPOINT identifier

其中identifier為儲存點的名稱。

ROLLBACK TO SAVEPOINT語句會向已命名的儲存點復原一個事務。如果在儲存點被設定後,當前事務對資料進行了更改,則這些更改會在復原中被撤銷,其文法格式:

ROLLBACK [WORK]  TO SAVEPOINT identifier

當交易回復到某個儲存點後,在該儲存點之後設定的儲存點將被刪除。

RELEASE  SAVEPOINT語句會從當前事務的一組儲存點中刪除已命名的儲存點。不出現提交或復原。如果儲存點不存在,會出現錯誤。其文法格式為:

RELEASE  SAVEPOINT identifier

MySQL事務知識要點(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.