這篇文章帶給大家的內容是關於MySQL事務管理的介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
交易處理用來維護資料庫等完整性,確保mysql操作要麼成功,要麼失敗(myisam不支援交易)
交易(transaction)指一組SQL語句;
回退(rollback)指撤銷指定SQL語句的程序;
提交(commit)指將未儲存的SQL語句結果寫入資料庫表;
#保留點(savepoint)指在交易處理中設定的暫存佔位符(place-holder ),你可以對它發布回退(與回退整個事務處理不同)。
select * from orderitems; START TRANSACTION; DELETE FROM orderitems; select * from orderitems; ROLLBACK; select * from orderitems;
START TRANSACTION; DELETE FROM orderitems where order_num = 20010; DELETE FROM orders WHERE order_num = 20010; COMMIT
假設第二個刪除失敗,回滾,撤銷交易處理區塊內的語句
複雜的交易處理可能需要部分提交或回退。
為了支援回退部分事務處理,必須能在事務處理區塊中適當的位置放 置佔位符。這樣,如果需要回退,可以回退到某個佔位符。
這些佔位符稱為保留點。為了建立佔位符,可如下使用SAVEPOINT
建立保留點
SAVEPOINT delete1
回退到保留點
ROLLBACK TO delete1
保留點越多越好,方便靈活使用,but沒必要到就算來哈!凡事適可而止
釋放保留點
保留點在事務處理完成(執行一條ROLLBACK或COMMIT)後自動釋放
release savepoint delete1
明確釋放保留點
mysql是自動提交所有變更。
不自動提交更改
set autocommit = 0;
以上是MySQL事務管理的介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!