MySQLサーバーにテーブルがあり、テーブルを再作成するSQLを取得したいと思います。
SQLテーブルを再作成するためのクエリを取得するにはどうすればよいですか?
MySQL はSHOW CREATE TABLE
、テーブルの作成に使用された SQL を返すことをサポートしています。
彼らのドキュメントから:
mysql> SHOW CREATE TABLE t;
CREATE TABLE t (
id INT(11) default NULL auto_increment,
s char(60) default NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM
これは、サーバー上の CLI ではなく、DB に接続するだけの場合に役立ちます。CLI がある場合は、liamgriffiths が推奨するように mysqldump を使用します。
mysqldump で実行できます - http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
次のように使用できます。
mysqldump [databasename] [tablename] > mysqltablesql.sql
phpMyAdmin を使用している場合は、テーブルを選択して [エクスポート] タブをクリックします。出力タイプの 1 つは SQL です。これを選択すると、テーブルを作成し、現在テーブルにあるすべてのデータを挿入するための SQL スクリプトが生成されます。ダンプデータオプションの下で「構造とデータ」を選択していることを確認してください
mysqldump [オプション] データベース [テーブル]>backup-file.sql
テーブルを指定しないか、 --databases または --all-databases を使用しない場合、データベース全体がダンプされます。
mysqldump --help を実行すると、お使いのバージョンの mysqldump がサポートするオプションのリストを取得できます。
--quick または --opt を指定せずに mysqldump を実行すると、mysqldump は結果をダンプする前に結果セット全体をメモリにロードすることに注意してください。大きなデータベースをダンプしている場合、これはおそらく問題になるでしょう。
phpMyAdmin にアクセスできる場合は、必要なテーブルの [エクスポート] タブからこのコードを取得できます。
SQL を選択し、「構造」(「CREATE テーブル」コード) と「データ」(「INSERT」コード) をエクスポート タイプを「INSERT」に設定してエクスポートします。
@liamgriffiths の の提案を使用しますが、続けてmysqldump
試すこともできますcreate table <new-table-name> like <old-table-name>
insert into <new-table-name> select * from <old-table-name>