這裏是一個有趣的情況。MySQL記錄UPDATE應該失敗,但不會。爲什麼?
我用MySQL開始一個事務。我的交易涉及3個相關的查詢。 每個查詢都必須成功,如果不是,則不應將任何查詢寫入數據庫。
現在......第二個查詢......恰好是一個UPDATE查詢...我改變了 標識要更新爲無效(不存在)PK值的記錄的pk值。我希望第二個查詢失敗以進行測試。查詢很好,只是c_id的值是錯的(我試圖更新的記錄不會退出)。
的問題是,由於必須更新的一鍵記錄不是查詢與一個「OK」執行...
mysql> UPDATE tableX SET bal = 4576.99 WHERE c_id = 3789;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
這是一個問題,因爲錯誤(錯誤是從我的角度在相關查詢鏈中更新)沒有被捕獲,因此事務沒有中止和回滾,而是進程繼續到第3個查詢,該查詢也成功並且事務被提交。
所以,我覺得奇怪的是,這樣的錯誤沒有被MySQL捕獲或沒有被MySQL標記爲錯誤。
任何有關爲什麼或如何解決的見解?