- ベストアンサー
テーブルのコピー
myisam型のテーブルをコピーしたいんですが、テーブルをコピーする命令文はありませんか? create tabeしてカラムを作ってselectで1行ずつコピーする以外に、テーブルをそのままコピーする方法があればそちらの方法でやりたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブルの構造そのものはCREATE TABLEで作る必要があります。 しかし、中身のデータに関しては、SELECT~INSERTを繰り返さなくても以下のように一行で済ませることができます。 INSERT INTO `TO_DB`.`TO_TABLE` SELECT * FROM `FROM_DB`.`FROM_TABLE`; この場合は、FROM_DBというデータベースのFROM_TABLEというテーブルの中身(データ全て)をTO_DBというデータベースのTO_TABLEというテーブルに丸ごとコピーするということになります。
その他の回答 (1)
- takuegg
- ベストアンサー率60% (12/20)
回答No.2
CREATE TABLE new_tbl SELECT * FROM orig_tbl; を使用するのは如何でしょうか。 気補的には同じ内容のテーブルが生成されますが、 ○インデックスは新しいテーブルに持ち越されない ○一部のカラム型の変換が行われる場合がある といった注意点があるようです。 詳細はMySQLのリファレンスをご参照下さい。
お礼
ありがとうございます。 ・create tabe ・カラム作成 ・INSERT INTO `TO_DB`.`TO_TABLE` SELECT * FROM `FROM_DB`.`FROM_TABLE`; という処理が必要なわけですね。 テーブルのinsertは初めて見ました。