0
我正在爲我們的mysql服務器編寫一個基礎結構庫。 我必須處理的場景之一是從MySQL服務器暫時斷開連接。在mysql上處理(ER_QUERY_INTERRUPTED)的策略
測試場景是從數據庫100000附近開始,然後停止數據庫並將其恢復。
在這種情況下,我對在停止期間運行的查詢有意識地收到ER_QUERY_INTERRUPTED錯誤。 的問題是:
我可以承擔有關分貝(如不啓動查詢)的狀態東西或認爲這是由於未定義behaiviour落這個問題倒鏈用戶?
只要您在交易中執行此操作,就可以安全地重新嘗試查詢。事務中的斷開連接將導致SQL服務器上的自動回滾。如果您處於事務之外,則查詢_可能已提交,或_可能不是_。再次插入可能會導致重複的數據。 –
@ColinMorelli:如果有人使用事務性存儲引擎,比如'InnoDB',那麼所有的操作都是「在一個事務中」(雖然它們可能會自動提交)。 – eggyal
@eggyal我的意思是一個非自動提交事務。如果你沒有_explicitly_發送'COMMIT',你不能確定在斷開連接期間是否執行了查詢。 –