MySQLでの「SELECT INTO TABLE」がサポートされていないので、がんばって解決する方法

MySQLでの「SELECT INTO TABLE」はサポートされていません。

公式によると以下のようになっています。

MySQL サーバでは、Sybase SQL 拡張機能 SELECT ... INTO TABLE ... はまだサポートされていません。

代わりに、SQL-99 構文 INSERT INTO ... SELECT ... がサポートされています。これらは、基本的には同じです。

とあります。

SELECT * INTO
SELECT * INTO new_table FROM now_table;


#1327 - Undeclared variable: new_table


というエラーがでます。


INTO INTO

ではINSERT INTOでやってみましょう。

INSERT INTO new_table SELECT * FROM now_table ;

#1146 - Table 'new_table' doesn't exist


というエラーが出ます。Create Table機能はないようです。

テーブルを同じカラム構成で作成して実行すれば成功です。


おまけ:バックアップの方法:SQLで実行

また以下の方法だと、ファイルに書き出しが可能です。

SELECT * INTO OUTFILE 'now_table_backup' FROM now_table

便利です。