我在我的存儲過程中執行10個查詢。如何處理Mysql數據庫中的事務處理。當我的數據庫被中斷?
在執行第5個查詢後,我的數據庫被中斷,並且執行了它。
我的第5個查詢更新database.so我不得不回滾所有5查詢的執行。
如何解決這類問題?
我在我的存儲過程中執行10個查詢。如何處理Mysql數據庫中的事務處理。當我的數據庫被中斷?
在執行第5個查詢後,我的數據庫被中斷,並且執行了它。
我的第5個查詢更新database.so我不得不回滾所有5查詢的執行。
如何解決這類問題?
默認的MySQL表類型是MyISAM,它不支持事務。幸運的是還有另一種類型的InnoDB,它支持事務。轉換的表型是很容易的:
http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html
,使查詢做到這一點的時候:
START TRANSACTION
// do whatever queries you want to
// if there are no errors
COMMIT
// if there are errors
ROLLBACK
回滾之後,你的數據庫將恢復到它在你所謂的啓動點的狀態交易。本教程應該幫助更多一些:
http://www.devshed.com/c/a/MySQL/Using-Transactions-In-MySQL-Part-1/
注:不能使用FULLTEXT查詢與InnoDB表。
使用InnoDB事務。開始交易...提交。見doc。
良好的迴應,並明確的想法.....瞭解它 – TinTin 2010-05-12 14:35:03
Thx。 :)不知道我的答案是否清楚,但事務是否執行COMMIT或ROLLBACK不是自動的事情;您必須執行錯誤檢查並採取任何適合的操作。 – Mathew 2010-05-12 14:58:40