回答:
INSERT INTO TARGET_TABLE SELECT * FROM SOURCE_TABLE;
編集:またはテーブルが異なる構造を持っている場合は、次のこともできます:
INSERT INTO TARGET_TABLE (`col1`,`col2`) SELECT `col1`,`col2` FROM SOURCE_TABLE;
編集:これを制約する..
INSERT INTO TARGET_TABLE (`col1_`,`col2_`) SELECT `col1`,`col2` FROM SOURCE_TABLE WHERE `foo`=1
テーブルが存在しない場合は、次のように同じスキーマでテーブルを作成できます。
CREATE TABLE table2 LIKE table1;
次に、データをコピーします。
INSERT INTO table2 SELECT * FROM table1
SELECT ... INTOは、テーブルを出力ファイルまたは変数にエクスポートするためのものです。テーブルには直接入れません。dev.mysql.com/doc/refman/5.7/en/select-into.htmlを
table1が大きく、コピープロセス中にロックしない場合は、代わりにダンプとロードを実行できます。
CREATE TABLE table2 LIKE table1;
SELECT * INTO OUTFILE '/tmp/table1.txt' FROM table1;
LOAD DATA INFILE '/tmp/table1.txt' INTO TABLE table2;
show processlist、実行中のクエリを確認できませんでした。何が問題なのかわからない。
ワンショットでコンテンツを作成およびコピーする場合は、SELECTを使用します。
CREATE TABLE new_tbl SELECT * FROM orig_tbl;
これを試して。私のOracle 10gでうまく機能し、
CREATE TABLE new_table
AS (SELECT * FROM old_table);