1.幾個相關概念
事務:指一組SQL語句。
回退:指撤銷指定SQL語句的過程。
提交:指將未存儲的SQL語句結果寫入數據庫表中。
保留點:指事務處理中發表的臨時佔位符,可以對它發佈回退。
2.控制事務處理
管理事務處理的關鍵在於將SQL語句分塊,並明確規定數據何時應該回退,何時不應該回退。
使用ROOLBACK:
SELECT * FROM ordertotals; 這時候表不爲空
START TRANSACTION;
DELETE FROM ordertotals;
SELECT * FROM ordertotals; 這時候表爲空
ROLLBACK;
SELECT * FROM ordertotals; 這時候表不爲空
這個例子首先查詢了ordertotals表的所有內容。然後通過START TRANSACTION表示一個事務的開始:刪除ordertotals的所有行,再查詢表的所有行,驗證表爲空。這時候再用一條ROLLBACK語句實現回退,最後一條語句的結果顯示錶不爲空
ROLLBACK語句用來管理INSERT,UPDATE和DELETE語句,不能用於SELECT,CREATE與DROP。
使用COMMIT:
一般在我們對數據庫表進行處理的過程中都是“隱含提交”,即不用明確地出現COMMIT語句,就會將我們的操作結果直接寫入數據庫表中。但是在事務處理這一塊,我們必須使用COMMIT來實現對結果的提交:
START TRANSACTION;
DELETE FROM orderitems WHERE order_num = 20010;
DELETE FROM orders WHERE order_num = 20010;
COMMIT;
這個例子從系統中的兩個表刪除編號爲20010的數據,因爲涉及到兩個表的操作,要保證一致性,我們使用了事務處理的方式,即只有在兩個表都刪除成功的情況下才執行COMMIT操作,修改數據庫表,而當只有一條語句成功或者都不成功的情況下不執行操作。