定義MySQL事務應該是每一個MySQL數據庫用戶都應該會的,下面就將為您講解如何定義MySQL事務,希望對您有所幫助。
MySQL默認的行為是在每條SQL語句執行後執行一個COMMIT語句,從而有效的將每條語句獨立為一個事務。
在復雜的應用場景下這種方式就不能滿足需求了。
為了打開事務,允許在COMMIT和ROLLBACK之前多條語句被執行,我們需要做以下兩步:
1, 設置MySQL的autocommit屬性為0,默認為1
2,使用START TRANSACTION語句顯式的打開一個事務
如果已經打開一個事務,則SET autocommit=0不會起作用,因為START TRANSACTION會隱式的提交session中所有當前的更改,結束已有的事務,並打開一個新的事務。
使用SET AUTOCOMMIT語句的存儲過程例子:
- CREATE PROCEDURE tfer_funds
- (from_account int, to_account int, tfer_amount numeric(10,2))
- BEGIN
- SET autocommit=0;
- UPDATE account_balance SET balancebalance=balance-tfer_amount WHERE account_id=from_account;
- UPDATE account_balance SET balancebalance=balance+tfer_amount WHERE account_id=to_account;
- COMMIT;
- END;
以上定義MySQL事務的方法介紹。
mysql存儲過程問題解答
創建MySQL存儲過程示例
mysql存儲過程的調用方法
MYSQL IFNULL函數的使用
帶您了解MySQL GROUP_CONCAT函數