Mysql

成功執行此查詢後,我如何回到 MySQL 中的上一個階段?

  • February 4, 2021
+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+ 

詢問:

更新客戶設置地址 = ‘Pune’ 其中 ID = 6;

成功執行此查詢後,如何返回上一階段?

我已經嘗試回滾,但它不起作用。

我的引擎是InnoDB

如果你的表引擎不是InnoDB,或者你沒有使用transactions過這個操作,那麼它可能是不可能的。

為了有可能使用ROLLBACKDML 語句(例如INSERTUPDATEDELETE查詢),您應該使用事務塊:

START TRANSACTION;

UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;
-- and more DML queries

COMMIT; -- or ROLLBACK;

由於事務已COMMIT編輯,因此無法回滾。唯一的選擇(我看到的)是恢復數據庫備份(如果存在)。


UPDv1:

就像一個建議:在對數據庫進行任何關鍵更改(執行事務、執行複雜的腳本,包括INSERTs、UPDATEs 和s 或使用s 或sDELETE更改資料結構)之前,請備份您的數據庫。ALTER``DROP

您可能會將備份還原為另一個數據庫副本,然後在其上測試腳本。如果沒有任何問題,則為真實數據庫執行腳本。

引用自:https://dba.stackexchange.com/questions/50341