我正在使用MySQL MyISAM,並且這是無法更改的。但是,我只熟悉交易方法。由於MyISAM不支持事務,我想結合兩個更新查詢到一個這樣的:一個MySQL查詢中的多個更新可以模擬事務行爲嗎?
UPDATE table1, table2 SET table1.col1='value1', table2.col1='value2'
WHERE table1.col3='567' AND table2.col6='876'
這是否保證,如果任何一個子查詢失敗了,另一個就不會被執行好,查詢將返回FALSE?
爲了測試這一點,我故意換成有效的字段名無效一個表1,然後表2在這兩種情況下,phpMyAdmin的返回的錯誤,並沒有查詢被處決。
將這種行爲在任何其他查詢錯誤的情況下,可以觀察到的?
它不保證任何遠程交易類似的東西。無論您嘗試使用什麼,無論您如何編寫該查詢,都不會調用OS的'fsync'調用或強制'fsync'。因此,按照定義 - 不,它不會模仿交易行爲。你不能與MyISAM進行交易,你不能模擬它,你不能擠壓它。你可以嘗試鎖定什麼不是,但那不會。 – 2014-09-26 13:50:00