首頁  >  文章  >  資料庫  >  MySQL事務-使用保留點、更改預設的提交行為詳解

MySQL事務-使用保留點、更改預設的提交行為詳解

巴扎黑
巴扎黑原創
2017-05-19 15:16:423034瀏覽

使用保留點

簡單的 ROLLBACK 和 COMMIT 語句就可以寫入或撤銷整個交易處理。但是,只是對簡單的事務處理才能這樣做,更複雜的事務處理可能需要部分提交或回退。

例如,前面描述的新增訂單的過程為一個事務處理。如果發生錯誤,只需要返回新增 orders 行之前即可,不需要回退到 customers 表(如果存在的話)。

為了支援回退部分交易處理,必須能在交易處理區塊中適當的位置放置佔位符。這樣,如果需要回退,可以回退到某個佔位符。

這些佔位符稱為保留點。為了建立佔位符,可如下使用SAVEPOINT語句:

輸入:

savepoint deletel;

每個保留點都取標識它的唯一名字,以便在回退時,MySQL知道要回退到何處。為了回退到本例給出的保留點,可如下進行:

輸入:

rollback to deletel;

#保留點越多越好可以在MySQL程式碼中設定任意多的保留點,越多越好。為什麼呢?因為保留點越多,你就越能按自己的意願靈活地進行回退。

釋放保留點 保留點在交易處理完成(執行一條 ROLLBACK 或COMMIT )後自動釋放。自MySQL 5以來,也可以用 RELEASESAVEPOINT 明確地釋放保留點。


更改預設的提交行為

如所述,預設的MySQL行為是自動提交所有更改。換句話說,任何時候你執行一條MySQL語句,該語句其實都是針對表格執行的,而且所做的變更立即生效。為指示MySQL不自動提交更改,需要使用以下語句:

輸入:

set autocommit = 0;

分析:autocommit 標誌決定是否自動提交更改,不管有沒有 COMMIT語句。設定 autocommit 為 0 (假)指示MySQL不自動提交變更(直到 autocommit 被設定為真為止)。

標誌為連接專用   autocommit 標誌是針對每個連線而不是伺服器的。

【相關推薦】

1. mysql免費視訊教學

2. MySQL事務-ROLLBACK,COMMIT用法詳解

3. MySQL事務處理實例解說

4. MySQL UPDATE觸發器(更新)與觸發器深度解析

#5. MySQL delete觸發器(刪除)用法詳解

以上是MySQL事務-使用保留點、更改預設的提交行為詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn