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

使用保留點

簡單的 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免費視頻教程

3.mysql免費視頻教程

4.?mysql免費視頻教程

5.?mysql免費視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享