MySQL事務管理的介紹(附示例)

本篇文章給大家帶來的內容是關于mysql事務管理的介紹(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

事務處理用來維護數據庫等完整性,保證mysql操作要么成功,要么失敗(myisam不支持事務)

1、關鍵詞

  1. 事務(transaction)指一組sql語句;

  2. 回退(rollback)指撤銷指定SQL語句的過程;

  3. 提交(commit)指將未存儲的SQL語句結果寫入數據庫表;

  4. 保留點(savepoint)指事務處理中設置的臨時占位符(place-holder),你可以對它發布回退(與回退整個事務處理不同)。

2、使用rollback

select * from orderitems; START TRANSACTION; DELETE FROM orderitems; select * from orderitems; ROLLBACK; select * from orderitems;

3、使用commit

START TRANSACTION; DELETE FROM orderitems where order_num = 20010; DELETE FROM orders WHERE order_num = 20010; COMMIT

假設第二條刪除失敗,回滾,撤銷事務處理塊內的語句

4、使用保留點

復雜的事務處理可能需要部分提交或回退。 ?
為了支持回退部分事務處理,必須能在事務處理塊中合適的位置放 置占位符。這樣,如果需要回退,可以回退到某個占位符。
這些占位符稱為保留點。為了創建占位符,可如下使用SAVEPOINT

創建保留點

SAVEPOINT delete1

回退到保留點

ROLLBACK TO delete1

tips

保留點越多越好,方便靈活使用,but沒必要到就算來哈!凡事適可而止 ?
釋放保留點

  1. 保留點在事務處理完成(執行一條ROLLBACK或 COMMIT)后自動釋放

  2. release savepoint delete1明確釋放保留點

5、更改默認到提交行為

mysql是自動提交所有更改。
不自動提交更改

set autocommit = 0;

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