2016-10-05 16 views
1

1つのスキーマ(a)から別のスキーマ(b)にすべてのデータをコピーしたいと思います。 2つのスキーマは同じ構造を持っています。MySQLクエリによってあるスキーマから別のスキーマにすべてのデータを挿入するには?

は私が

Insert into a.table1 select * from b.table1; 

を使用しかし、そこに254個のテーブルがあり、それらをリストアップし、非常に不満です。

解決策はありますか?

おかげ

+2

すばやく回避するには、SELECT文を使用してinsert文を作成します。SELECT 'INSERT INTO a。' || table_name || 'SELECT * FROM b。' || table_name || ';' FROM information_schema.tables WHERE table_schema = 'a'; –

+1

さて、あなたはいつでも目的のために提供されているユーティリティを試すことができました[mysqldbcopy](https://dev.mysql.com/doc/mysql-utilities/1.5/en/utils-task-clone-db.html) – RiggsFolly

答えて

1

2オプション...

1)の結果をループし、動的SQLを使用します。Excelにそのクエリの結果

select TABLE_NAME from information_schema.tables

2)出力、そこからあなたのインサートをビルドし、大きな古いprocでそれらを実行します。

+0

SQLを使用してステートメントを直接作成するためのCONCAT。Excelは不要です。 –

+0

@ R.Chappellそこからさらに1歩歩いて、動的なSQLプロシージャを取得しました...途中でポイントはありませんが、私はあなたのポイントを見ます – JohnHC

関連する問題