2013-03-16 52 views
0

據我所知,MySQL中的InnoDB表,所有的事務都被START TRANSACTION包裝;並以COMMIT結束;除非明確表示不要。在Mysql中的事務和AUTOCOMMIT

如果我要顯式定義事務塊,這將是正確的做這樣的事情:

SET AUTOCOMMIT = 0; 
START TRANSACTION; 
[SQL STATEMENTS] 
COMMIT; 
SET AUTOCOMMIT = 1; 

會在此之後,下一個事務回去InnoDB的默認處理事務的方式嗎?我的意圖是有時只在我的應用程序中明確定義事務,但所有其他事務將由引擎處理。

回答

4

在你的情況下,你不需要設置自動提交爲0。定義一個事務隱含地爲你做。從MySQL documentation: 「要隱式地爲單個系列語句禁用自動提交模式,請使用START TRANSACTION語句:」

+0

感謝您的答案,Noha。 – urbanspr1nter 2013-03-20 04:33:56