Auf die gleiche Weise SHOW CREATE TABLE tblname; bringt zurück, was zuvor ausgeführt wurde, gibt es trotzdem die SQL einer ALTER TABLE-Abfrage anzuzeigen? Bitte helfen?Kann ALTER TABLE nach der Ausführung angezeigt werden? -MySQL
Antwort
Wenn Ihre MySQL-Instanz aktiviert ist, können Sie die Protokolle anzeigen. Dies wäre die beste Option.
Wenn in Ihrem System die Historie aktiviert ist, können Sie eine Client-Sicherung vom selben System aus starten und den Pfeil nach oben verwenden. Möglicherweise können Sie den Befehl dort sehen.
Wenn Sie den Benutzer kennen, der den Befehl ausgeführt hat und den Befehl direkt über eine Befehlszeile ausgeführt hat, funktioniert möglicherweise derselbe Verlaufstrick.
Eine kleine Klarstellung: show create table
führt eigentlich nicht "zurück, was vorher ausgeführt wurde". Es zeigt Ihnen nur die DDL, die die Tabelle von Grund auf neu erstellen würde. Die Tabelle wurde möglicherweise erstellt und dann mehrmals geändert, aber show create table
spiegelt den aktuellen Status der Tabelle wider.
Wie für alle alter table
Aussagen zu finden, die vor kurzem auf dem Tisch lief, ist die beste Wette das binäre Protokoll.
Prüfen Sie zuerst, ob binäre Protokollierung aktiviert ist:
show variable like 'log_bin';
Wenn es ist, das binäre Protokoll für den betreffenden Zeitraum finden, verwenden mysqlbinlog es zu SQL zu konvertieren, dann grep für die jeweiligen Tabellennamen Finden Sie die alter table
Aussage, die Sie suchen.
Werkzeuge:
- Maatkit.
- Red-Tor MySQL Schema & Daten vergleichen
- Toad
- SQLYog
- MySQL Diff
Handbuch:
Prüfen Sie zuerst, ob binäre Protokollierung aktiviert ist:
show variable like 'log_bin';
Dann 0
,
mysqlbinlog /var/log/mysql/mysql-bin.000001 | grep 'alter table *tablename*' > test.file
Zum test.file die alten Aussagen zu sehen.
http://dev.mysql.com/doc/refman/5.0/en/server-logs.html ist eine Verknüpfung zu Beschreibungen der MySQL-Protokollierung für die Verwaltung. – TheJacobTaylor
danke für die Antwort, ich benutze phpmyadmin, aber ich kann nicht scheinen, irgendwelche Geschichte oder Protokolloption zu finden. –
Wenn Sie die Daten benötigen, können Sie den Administrator des Systems bitten, die Abfrageprotokolle für Sie abzurufen? Lassen Sie sie am jeweiligen Tag Befehle von Ihrem Benutzer mit "alter" finden. Hoffentlich können sie helfen. – TheJacobTaylor