MYSQL學習筆記(二十二)管理事務處理
阿新 • • 發佈:2019-01-27
- 事務處理
事務處理可以用來維護資料庫的完整性,它保證成批的MYSQL操作要麼完全執行,要麼完全不執行 - 事務處理幾個術語
事務:指一組SQL語句
回退:指撤銷指定SQL語句的過程
提交:指將未儲存的SQL語句結果寫入資料庫表
保留點:指事務處理中設定的臨時佔位符,可以對它釋出回退 - 事務開始
START TRANSACTION - 使用ROLLBACK
此命令用來回退(撤銷)MYSQL語句
SELECT * FROM ordertotals
START TRANSACTION;
DELETE FROM ordertotals;
SELECT * FROM ordertotals;
ROLLBACK;
SELECT * FROM ordertotals;
先用SELECT顯示ordertotals表不為空;然後開始事務處理DELETE語句刪除ordertotals所有行;再次SELECT驗證確實已空;用ROLLBACK回退START TRANSACTION;、之後所用語句;再次SELECT顯示不為空。
事務處理用來管理INSERT、UPDATE、DELETE語句。 - 使用COMMIT
在事務處理塊中,提交不會隱含的進行
START TRANSACTION;
DELETE FROM orderitems WHERE order_num=20010;
DELETE FROM orders WHERE order_num=20010;
COMMIT;
從系統中完全刪除訂單20010。為防止部分刪除,只有兩條DELETE都正確,COMMIT才可正確提交。 - 使用保留點
建立保留點(佔位符)
SAVEPOINT delete;
為回退到保留點,可如下進行:
ROLLBACK TO delete; - 更改預設的提交行為
預設的MYSQL行為都是自動提交所有更改。
為指示MYSQL不自動提交更改,可使用以下語句:
SET autocommit=0;