事務處理用來維護數據庫等完整性,保證mysql操做要麼成功,要麼失敗(myisam不支持事務)
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
假設第二條刪除失敗,回滾,撤銷事務處理塊內的語句mysql
複雜的事務處理可能須要部分提交或回退。
爲了支持回退部分事務處理,必須能在事務處理塊中合適的位置放 置佔位符。這樣,若是須要回退,能夠回退到某個佔位符。
這些佔位符稱爲保留點。爲了建立佔位符,可以下使用SAVEPOINTsql
SAVEPOINT delete1
ROLLBACK TO delete1
保留點越多越好,方便靈活使用,but不必到就算來哈!凡事適可而止
釋放保留點數據庫
release savepoint delete1
明確釋放保留點mysql是自動提交全部更改。
不自動提交更改code
set autocommit = 0;