MySQL 中的事務性儲存程序
在儲存過程中以事務性方式執行多個SQL 語句可確保所有語句成功執行或全部執行完全執行。此行為對於維護資料一致性和完整性至關重要。以下是如何在MySQL 預存程序中實現事務:
語法錯誤修正
在您提供的程式碼片段中,有兩個語法錯誤阻止了預存程序從變成交易性的。正確的語法如下:
DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
BEGIN
ROLLBACK;
END;
此程式碼宣告一個退出處理程序,如果在預存程序執行期間發生 SQL 例外狀況或警告,該處理程序將自動回滾任何變更。退出處理程序的條件之間的逗號和 DECLARE 語句末尾的分號對於預存程序的正常運作至關重要。
範例
Once語法錯誤已更正,可以透過將 SQL 語句包含在 START TRANSACTION...COMMIT 區塊中來使儲存程序成為事務性的。以下是事務性預存程序的範例:
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
BEGIN
ROLLBACK;
END;
START TRANSACTION;
-- Your SQL statements here
COMMIT;
END
用法
要使用事務性預存程序,只需從應用程式程式碼中將其作為常規儲存程序呼叫即可。如果預存程序中的所有 SQL 語句都成功執行,COMMIT 語句將使這些變更永久保留在資料庫中。如果發生任何 SQL 異常或警告,ROLLBACK 語句將自動撤銷所有變更。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3