7 Stimmen

Gibt es eine Möglichkeit, ALTER TABLE nach seiner Ausführung anzuzeigen? -MySQL

Auf die gleiche Weise, wie SHOW CREATE TABLE tblname; die zuvor ausgeführten Daten wiedergibt, kann man auch die SQL einer ALTER TABLE-Abfrage anzeigen? Bitte um Hilfe?

5voto

Ike Walker Punkte 62083

Eine kleine Klarstellung: show create table bringt nicht wirklich "zurück, was vorher ausgeführt wurde". Es wird lediglich die DDL angezeigt, mit der die Tabelle von Grund auf neu erstellt werden würde. Die Tabelle kann erstellt und dann viele Male geändert worden sein, aber show create table spiegelt den aktuellen Zustand der Tabelle wider.

Was die Suche nach einem alter table Anweisungen, die kürzlich auf dem Tisch gelaufen sind, ist das Binärprotokoll die beste Wahl.

Prüfen Sie zunächst, ob die binäre Protokollierung aktiviert ist:

show variable like 'log_bin';

Wenn dies der Fall ist, suchen Sie das Binärprotokoll für den betreffenden Zeitraum, verwenden Sie mysqlbinlog, um es in SQL zu konvertieren, und suchen Sie dann mit grep nach dem betreffenden Tabellennamen, um die alter table Aussage, nach der Sie suchen.

2voto

phil Punkte 620

Werkzeuge:

  • Maatkit.
  • Red-Gate's MySQL Schema & Datenvergleich
  • Kröte
  • SQLYog
  • MySQL-Diff

Handbuch:

Prüfen Sie zunächst, ob die binäre Protokollierung aktiviert ist:

show variable like 'log_bin';

Dann,

mysqlbinlog /var/log/mysql/mysql-bin.000001 | grep 'alter table *tablename*' > test.file

Gehen Sie zu test.file, um die alter-Anweisungen zu sehen.

1voto

TheJacobTaylor Punkte 4061

Wenn in Ihrer MySQL-Instanz die Protokollierung eingeschaltet ist, können Sie die Protokolle einsehen. Dies wäre die beste Option.

Wenn in Ihrem System der Verlauf aktiviert ist, können Sie einen Client 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 er ihn zufällig direkt von einer Befehlszeile aus ausgeführt hat, könnte der gleiche Trick mit dem Verlauf funktionieren.

0 Stimmen

dev.mysql.com/doc/refman/5.0/de/server-logs.html ist ein Link zu Beschreibungen der MySQL-Protokollierung für die Verwaltung.

0 Stimmen

Vielen Dank für die Antwort, ich verwende phpmyadmin, aber ich kann anscheinend keine Verlaufs- oder Protokolloption finden.

0 Stimmen

Wenn Sie die Daten benötigen, können Sie den Administrator des Systems bitten, die Abfrageprotokolle für Sie zu besorgen. Lassen Sie ihn die Befehle Ihres Benutzers mit "alter" an einem bestimmten Tag suchen. Hoffentlich können sie helfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X