テーブルの定義をコピー

MySQL 4.1 では

CREATE TABLE table2 LIKE table1;

これで table1 の定義を使って table2 を作れるって。こりゃ便利。
と思ったら、

CREATE TABLE table2 SELECT * FROM table1;

これだけで中身入りのコピーが。これは 3.23 以降だそうな。

MySQL リファレンスマニュアル :: 6.5.3 CREATE TABLE 構文
http://dev.mysql.com/doc/mysql/ja/create-table.html

追記 2009-04-03

ひさしぶりにmysqlいじってたら、過去にだめなことを書いていたのを思い出したので追記。

CREATE TABLE table2 SELECT * FROM table1;

これだとフィールドの型と中身だけがコピーされて、キーなどがされないテーブルになるのでテーブルのコピーにはならんですな。
likeで作ったあとにinsert〜selectしないと...。