2017-08-09 9 views
0

を読んで、私はSQLに新しいです、私はTEST1 TEST2 TEST3 ---- test100テーブルの束を持っています。これらのテーブルは毎日作成され、同じ列/書式を持ちます。私は1ヶ月過去のデータを持っている必要がありますテーブルを作成したい、言い換えれば私は1つのテーブルにtest1 - test30を結合する必要があります。SQL Workbench-世代テーブル

create table final as 
select * from test1; 
insert into final from test2 
insert into final from test3 
. 
. 
insert into final from test30.. 

あなたが私にこれを行う代わりにする簡単な方法を提案することができます私は以下のコードを考えることができますが、私はconditions..or他のいくつかの方法でループを使用してのように行うための効率的かつ容易な何かをかながら探していますここでは30のINSERT文

+0

私はあなたのパーティショニングについて学ぶべきだと思います。非常に多くの異なるテーブルを格納する理由はありません。 –

答えて

0

を使用する例です。

コピーし、別のテーブルに一つのテーブルからすべての列:

INSERT INTO table2 
SELECT * FROM table1 
WHERE condition; 

コピー1から一部のカラムだけ別のテーブルにテーブル:

INSERT INTO table2 (column1, column2, column3, ...) 
SELECT column1, column2, column3, ... 
FROM table1 
WHERE condition; 

別の解決策は、それが同じテーブルを持っているならば、.csvファイルまたはTXTファイルに挿入し、最終的なテーブルにインポートして、すべてのデータベースからデータをダンプすることです。

Mysql -u [username] -p [database_name] < /path/to/file.[extention] 
関連する問題