在MySQL中,事務(wù)控制用于確保一組操作要么全部成功執(zhí)行,要么全部失敗回滾。要實現(xiàn)事務(wù)控制,你需要使用以下關(guān)鍵字:
以下是一個簡單的示例,展示了如何在MySQL腳本中實現(xiàn)事務(wù)控制:
-- 開始一個新的事務(wù)
START TRANSACTION;
-- 執(zhí)行一些數(shù)據(jù)庫操作,例如插入、更新或刪除
INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2');
UPDATE table2 SET column1 = 'new_value' WHERE column2 = 'some_value';
-- 提交事務(wù),使更改永久生效
COMMIT;
如果你想在發(fā)生錯誤時自動回滾事務(wù),可以使用DECLARE CONTINUE HANDLER語句來捕獲特定的錯誤,并在發(fā)生錯誤時執(zhí)行ROLLBACK。以下是一個示例:
-- 開始一個新的事務(wù)
START TRANSACTION;
-- 聲明一個錯誤處理程序,當(dāng)發(fā)生1062錯誤(重復(fù)鍵)時,執(zhí)行ROLLBACK
DECLARE CONTINUE HANDLER FOR 1062 ROLLBACK;
-- 執(zhí)行一些數(shù)據(jù)庫操作,例如插入、更新或刪除
INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2');
UPDATE table2 SET column1 = 'new_value' WHERE column2 = 'some_value';
-- 提交事務(wù),使更改永久生效
COMMIT;
請注意,這些示例僅適用于支持事務(wù)的存儲引擎,如InnoDB。對于不支持事務(wù)的存儲引擎,如MyISAM,這些操作將無效。