it-swarm.com.de

Wie kann ich meinen letzten Löschbefehl in MySQL zurücksetzen?

Ich habe versehentlich eine große Anzahl von Zeilen aus einer Tabelle gelöscht ...

Wie kann ich es zurücksetzen?

Ich habe die Abfrage mit PuTTY ausgeführt.

Ich bin dankbar, wenn einer von euch mich sicher aus diesem herausführen kann ...

49
Vijay

Wenn Sie kein Backup erstellt haben, sind Sie ziemlich fudged.

90
Omry Yadan

Wenn Sie die Transaktion noch nicht festgeschrieben haben, versuchen Sie rollback. Wenn Sie die Transaktion bereits festgeschrieben haben (durch commit oder durch Beenden des Befehlszeilenclients), müssen Sie die Daten Ihrer letzten Sicherung wiederherstellen.

26
Aaron Digulla

Ein "Rollback" funktioniert nur, wenn Sie transaction verwendet haben. Auf diese Weise können Sie Abfragen zusammenfassen und alle Abfragen rückgängig machen, wenn nur eine davon fehlschlägt.

Wenn Sie die Transaktion jedoch bereits festgeschrieben haben (oder eine reguläre DELETE-Abfrage verwenden), können Sie Ihre Daten nur durch Wiederherstellen einer zuvor erstellten Sicherung wiederherstellen.

10
Select0r

Verwenden Sie den Befehl BEGIN TRANSACTION, bevor Sie Abfragen starten. Damit können Sie jederzeit ROLLBACK Dinge abrufen.

ZUM BEISPIEL:

  1. transaktion beginnen
  2. wählen Sie * von Student aus
  3. von Student löschen, wobei Id = 2
  4. wählen Sie * von Student aus
  5. rollback
  6. wählen Sie * von Student aus
5
Author PraWin

Die akzeptierte Antwort ist nicht immer korrekt. Wenn Sie die binäre Protokollierung in MySQL konfigurieren, können Sie die Datenbank auf einen früheren Punkt zurücksetzen, für den Sie noch einen Snapshot und ein Binlog haben.

7.5 Wiederherstellung von Zeitpunkten (inkremental) mithilfe des Binärlogs ist ein guter Ausgangspunkt, um mehr über diese Einrichtung zu erfahren.

3
Phil Lello

In MySQL:

start transaction;

savepoint sp1;

delete from customer where ID=1;

savepoint sp2;

delete from customer where ID=2;

rollback to sp2;

rollback to sp1;
1
Shu Zhang

Wenn Sie Daten zurücksetzen möchten, müssen Sie zuerst autocommit = 0 ausführen und dann die Abfrage löschen, einfügen oder aktualisieren.

Nach Ausführung der Abfrage dann Rollback ausführen ...

0
Kishore Kishore

Ich hatte auch einige Werte aus meiner Entwicklungsdatenbank gelöscht, aber ich hatte die gleiche Kopie in der QA-Datenbank. Daher habe ich ein Skript erstellt und die Option "Datentyp zum Skript" auf "Nur Daten" gesetzt und meine Tabelle ausgewählt.

Dann bekam ich die Einfügeanweisungen mit den gleichen Daten und dann führe ich das Skript in meiner Entwicklungsdatenbank aus.

0
Nikki