• ベストアンサー

テーブルのコピー

myisam型のテーブルをコピーしたいんですが、テーブルをコピーする命令文はありませんか? create tabeしてカラムを作ってselectで1行ずつコピーする以外に、テーブルをそのままコピーする方法があればそちらの方法でやりたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

テーブルの構造そのものはCREATE TABLEで作る必要があります。 しかし、中身のデータに関しては、SELECT~INSERTを繰り返さなくても以下のように一行で済ませることができます。 INSERT INTO `TO_DB`.`TO_TABLE` SELECT * FROM `FROM_DB`.`FROM_TABLE`; この場合は、FROM_DBというデータベースのFROM_TABLEというテーブルの中身(データ全て)をTO_DBというデータベースのTO_TABLEというテーブルに丸ごとコピーするということになります。

cirew
質問者

お礼

ありがとうございます。 ・create tabe ・カラム作成 ・INSERT INTO `TO_DB`.`TO_TABLE` SELECT * FROM `FROM_DB`.`FROM_TABLE`; という処理が必要なわけですね。 テーブルのinsertは初めて見ました。

その他の回答 (1)

  • takuegg
  • ベストアンサー率60% (12/20)
回答No.2

CREATE TABLE new_tbl SELECT * FROM orig_tbl; を使用するのは如何でしょうか。 気補的には同じ内容のテーブルが生成されますが、 ○インデックスは新しいテーブルに持ち越されない ○一部のカラム型の変換が行われる場合がある といった注意点があるようです。 詳細はMySQLのリファレンスをご参照下さい。

参考URL:
http://dev.mysql.com/doc/mysql/ja/create-table.html

関連するQ&A