MySQL事務是指由一個或多個SQL語句組成的操作序列,這些操作必須作為一個整體執行,要么全部執行,要么全部不執行。一旦在事務中的任何一個SQL語句沒有得到執行,那么整個事務將被回滾,所有執行過的SQL語句都將失效。
在MySQL中,事務的操作通常包括增、刪、改等操作,可以通過下面的語句開啟一個事務:
START TRANSACTION;
執行了以上語句后,MySQL就會開啟一個新的事務,我們可以隨意執行SQL語句,比如:
UPDATE user SET name='小明' WHERE id=1; DELETE FROM order WHERE user_id=1 AND status=0; INSERT INTO log (user_id,description) VALUES (1,'刪除訂單');
當我們需要提交一個事務時,可以執行以下語句:
COMMIT;
執行以上語句后,所有在事務中執行過的SQL語句都將被提交執行,如果SQL語句中出現了錯誤,MySQL會將整個事務回滾,所有操作都失效。
除了手動提交事務,有些情況下我們也需要回滾事務,MySQL提供了ROLLBACK語句來回滾一個事務:
ROLLBACK;
執行以上語句后,MySQL會將整個事務回滾,所有操作都失效。