MySQLをちょこちょこいじり始めてしばらく経ちますが、相変わらず慣れない。頑張らんと。
どっかで見たテーブルのコピーの仕方。
CREATE TABLE new_tbl LIKE orig_tbl;
INSERT INTO new_tbl SELECT * FROM orig_tbl;
でもテーブルのコピーだけならこっちでもいけるんじゃないの?1行でラクじゃない?
CREATE TABLE new_tbl SELECT * FROM orig_tbl;
ちゃんと意味がありました。以下リファレンスから。
http://dev.mysql.com/doc/refman/5.1-olh/ja/create-table.html
CREATE TABLE ステートメントの最後に SELECT を追加することで、1 つのテーブルから別のテーブルを作成することができます。
CREATE TABLE new_tbl SELECT * FROM orig_tbl;
元テーブルの中で指定されたカラム属性やインデックスを含む、ほかのテーブルの定義に基づき空のテーブルを作成するには、LIKE を利用してください。
CREATE TABLE new_tbl LIKE orig_tbl;
コピーは元テーブルと同じバージョンのテーブルストレージフォーマットを利用して作成されます。元のテーブルには SELECT 権限が必要です。
SELECTでは属性やインデックス、オートインクリメントなどの定義は含まれないので、
それらの情報もコピーしたいならLIKEを使いましょうとのこと。