首頁 > 資料庫 > mysql教程 > 淺談MySQL事務管理(基礎)

淺談MySQL事務管理(基礎)

青灯夜游
發布: 2019-02-26 10:53:03
轉載
2534 人瀏覽過

這篇文章帶給大家的內容是淺談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;
登入後複製
以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是淺談MySQL事務管理(基礎)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:https://segmentfault.com/a/1190000018282782
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板