2012-09-04 57 views
1

我正在設置實體的類別和子類別,因此子類別取決於類別。在設置類別時,我需要確保完成事務成功或完成事務失敗。如果我一起使用2個查詢,它仍然會一個接一個執行,因此這可能是一個插入成功而另一個插入不成功。在PHP或mysqli中維護原子性有什麼好方法嗎?插入多個表時的原子性問題

回答

2

不,因爲這些數據庫是完全不相關的,並且沒有跨數據庫事務這樣的事情。至少,不是我所知道的。 :)

但是,你是一個一點點如果您使用插入事務處理更安全一點。在兩個數據庫上啓動一個事務,在兩個數據庫上執行所有修改,然後僅執行兩個事務。插入/更新語句已經運行了(如果存在像約束錯誤那樣的問題,可能會失敗),所以在你要提交的地方,沒有太多可能出錯的地方。

確保您的表格處於支持事務的存儲類型中。

[編輯]

您可以使用

START TRANSACTION; 

-- Your queries go here 

COMMIT 

在事務中執行語句。

欲瞭解更多信息,請閱讀:http://dev.mysql.com/doc/refman/5.0/en/commit.html

+0

我在多個數據庫不插入,在多個表中插入我。 – Sourabh

+0

我誤解了,因爲你的標題說'多個數據庫'。在這種情況下:是的,你可以。這確實被稱爲'交易'。看我的編輯。 – GolezTrol

+0

噢,對不起,我的錯誤。 – Sourabh