SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【MySQL】CREATE … SELECT …文

create文の後ろにselect文をつけて、テーブルを作成しながらデータも入れてしまうSQLを書くことができます。

素直に次のように書けば、まず普通の動きをします。
検索結果のデータをもとに、新しいテーブルを作ります。

create T select * from T2;

テーブル定義付きのcreate文でもselectを付けることができます。

create T (x int) select * from T2;

この場合、明示したxというカラムの後ろに、selectしたカラムが続く形のテーブルになります。
ただし、xというカラムがT2にある場合は違います。
後ろに付けるselect文の中で、カラムの別名としてxを付けた場合も同様です。

意図してやるならよいですが、混乱を招きそうなので、無難に2文に分けたほうがよいと思ったのでした。

create T (x int, y int);
insert into T (x, y) select x, y from T2;

関連するメモ

コメント