回答
如果聲明仍在運行,您可以使用KILL QUERY <thread_id>
。
如果聲明已完成但您尚未提交交易,您可以使用ROLLBACK
。
如果語句已完成且事務已提交(或者您未啓動事務),請從最近的備份中恢復數據。
另外這裏是爲了防止這種情況在第一時間發生的一些提示建議:
- 當寫一個刪除或更新總是先寫在WHERE子句,這樣你不不要忘記它。
- 在SELECT語句中測試您的WHERE子句以確保您正在更新正確的行。
- 如果您知道應該只更新一行,那麼您可以將LIMIT 1添加到UPDATE語句中。然後,如果儘管使用上述技術,仍然有錯誤,至少只有一行會受到影響,而不是整個數據庫。
你可以去到「流程」頁面,然後按「殺」
,如果你刪除的東西的話,我不認爲它會回來,除非你有一個backup.I知道SQL有時可以在您提交一系列SQL命令之前,您將遠離ROLLBACK調用,但只有在事務中,您必須首先啓動它們(phpMyAdmin不使用)。
如果您已經提交了交易,恐怕沒有辦法「撤銷」它。這是ACID的核心原則之一。如果你還沒有犯下:只要做一個rollback
,你沒事。
您需要從備份恢復數據 - 或者如果查詢正在運行,請使用試試Mark Byers建議的內容。
如果您需要在提交更新之前恢復先前數據的能力,那麼您可以使用更新和刪除觸發器來重構數據庫,以將舊數據存儲在帶有當前日期/時間戳的存檔表中,或者(最好是)一個事務ID值(並確保插入始終存儲當前日期/時間戳或事務ID值)......有效地維護對數據庫所做的每個更改的整個歷史記錄。請注意,您的數據庫將以令人難以置信的速度增長......對於關鍵任務數據而言,這只是一個真正的解決方案,因爲需要花費大量精力才能實施,並且需要大量昂貴的磁盤空間來維護。即使如此,如果後續更新受影響的數據,情況會變得非常複雜;而當您恢復到之前的歷史記錄時,您可能需要「丟失」那些。
我只能想到實施這種類型歷史維護的極少數系統......例如Oracle Financials或HR。
或者,有一些數據庫(我曾與舊的DEC RDBMS一起工作)可以維護RUJ(運行單元日誌),然後可以使用這些數據庫從備份中恢復和設置時間/事務。但是MySQL不屬於這個範疇。同樣,它需要大量的磁盤空間,並且只有在定期備份數據時纔是切實可行的,並且恢復過程更爲複雜。 MySQL(據我所知)不支持這個功能。
對於大多數人來說,更實用的方法是從備份進行簡單恢復,其後可能會進行一些手動恢復。不幸的是,現在大多數人甚至沒有備份。
- 1. 如何在phpmyadmin中撤消查詢?
- 2. 如何撤消mysql查詢?
- 3. 如何撤消SQL Server UPDATE查詢?
- 4. phpMyAdmin的 - 查詢執行時間
- 5. JavaScript執行然後撤消
- 6. 執行撤消操作
- 7. 如何在PHPMyAdmin中執行多個查詢?
- 8. 無法使用phpmyadmin執行查詢
- 9. 如何在git中「撤消撤消」?
- 10. 如何通過PHPMyadmin自動執行SQL查詢?
- 11. 錯誤在php中執行我的查詢但不在phpmyadmin中
- 12. 撤消最後的neo4j密碼查詢
- 13. 如何執行撤消操作到油漆中android
- 14. 在pyscopg2中取消查詢執行
- 15. PHPMyAdmin中的SQL查詢不執行顯示錯誤#1071
- 16. 如何撤消通過VBA執行的操作
- 17. 如何執行TFS等效的'撤消掛起更改'
- 18. 如何在Android的繪圖線上執行撤消操作?
- 19. ActiveRecord - 查詢執行後如何執行?
- 20. 無法執行多個撤消操作
- 21. mysql撤消查詢或功能
- 22. SQL更新查詢 - 撤消引用
- 23. Hive如何執行查詢?
- 24. PostgreSQL如何執行查詢?
- 25. 如何執行MySql查詢?
- 26. 如何執行此查詢?
- 27. LINQ查詢...如何執行?
- 28. 如何執行ASK查詢?
- 29. 執行sql查詢PHP中不起作用,但在phpMyAdmin
- 30. 我如何查看執行的查詢?
你的意思是,停止一個已啓動的查詢,或撤消已完成(和已提交)語句所做的更改? – GolezTrol
是取消已完成的更改 – learner