2012-01-20 17 views
1

我試着在MyISAM表上啓動事務,它回答「查詢OK,0行受影響(0.00秒)」。在MyISAM表中執行START TRANSACTION時是否會拋出任何錯誤?

但我不確定是否所有版本的MySQL都會發生同樣的情況。

是否有涉及在事務中的那些查詢的非事務模式下的行爲的規範?

+0

你是怎麼做到的?請顯示SQL - –

+0

只需執行查詢「START TRANSACTION;」 – Determinant

+0

@ymfoi嗯,當你這樣做的時候(即START TRANSACTION),你沒有指定任何表,所以它將一直工作,即使你在數據庫中只有MyISAM表正在使用。 –

回答

3

不,不會出現錯誤或警告。當你開始一個交易時,你會爲所有可用的交易引擎執行此操作,而不是針對任何特定的表。

您可以使用一個事務中事務性和非事務性引擎的表運行查詢,當然只能在tableswith事務引擎執行的變更將需要提交/回滾。

使用非事務引擎執行的查詢將像往常一樣立即生效。

+0

Thx!你的回答是清楚而準確的。 – Determinant

+0

不客氣! – Mchl

+0

@ymfoi,在這裏看到更多的細節:http://dev.mysql.com/doc/refman/5.6/en/ansi-diff-transactions.html ...基本上,當你執行查詢(內部和外部的事務)在沒有事務支持的表上,他們在auto_commit = 1模式下工作... –

相關問題