7

同様に、SHOW CREATE TABLE tblname; ALTER TABLE クエリの SQL を表示する方法はありますか? 助けてください?

4

3 に答える 3

5

1 つの小さな説明:show create table実際には「以前に実行されたものを戻す」わけではありません。テーブルをゼロから作成する DDL が表示されるだけです。テーブルは何度も作成されてから変更されている可能性がありますがshow create table、テーブルの現在の状態を反映しています。

最近テーブルで実行されたステートメントを見つけることに関してalter tableは、最善の策はバイナリ ログです。

最初に、バイナリ ログが有効になっているかどうかを確認します。

show variable like 'log_bin';

そうである場合は、関連する期間のバイナリ ログを見つけ、mysqlbinlog を使用してそれを SQL に変換し、関連するテーブル名を grep して、探しているalter tableステートメントを見つけます。

于 2010-02-24T19:16:31.500 に答える
2

ツール:

  • マーキット。
  • Red-Gate の MySQL スキーマとデータ比較
  • ヒキガエル
  • SQLヨグ
  • MySQL 差分

マニュアル:

最初に、バイナリ ログが有効になっているかどうかを確認します。

show variable like 'log_bin';

それで、

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

test.file に移動して、alter ステートメントを確認します。

于 2013-01-14T15:38:58.043 に答える
1

MySQL インスタンスのロギングが有効になっている場合は、ログを表示できます。これが最良の選択肢です。

システムの履歴がオンになっている場合は、同じシステムからクライアント バックアップを開始して、上向き矢印を試すことができます。そこにコマンドが表示される場合があります。

コマンドを実行したユーザーを知っていて、たまたまコマンドラインから直接実行した場合、同じ履歴トリックが機能する可能性があります。

于 2010-02-24T18:49:38.170 に答える