1つのスキーマ(a)から別のスキーマ(b)にすべてのデータをコピーしたいと思います。 2つのスキーマは同じ構造を持っています。MySQLクエリによってあるスキーマから別のスキーマにすべてのデータを挿入するには?
は私が
Insert into a.table1 select * from b.table1;
を使用しかし、そこに254個のテーブルがあり、それらをリストアップし、非常に不満です。
解決策はありますか?
おかげ
1つのスキーマ(a)から別のスキーマ(b)にすべてのデータをコピーしたいと思います。 2つのスキーマは同じ構造を持っています。MySQLクエリによってあるスキーマから別のスキーマにすべてのデータを挿入するには?
は私が
Insert into a.table1 select * from b.table1;
を使用しかし、そこに254個のテーブルがあり、それらをリストアップし、非常に不満です。
解決策はありますか?
おかげ
2オプション...
1)の結果をループし、動的SQLを使用します。Excelにそのクエリの結果
select TABLE_NAME from information_schema.tables
2)出力、そこからあなたのインサートをビルドし、大きな古いprocでそれらを実行します。
SQLを使用してステートメントを直接作成するためのCONCAT。Excelは不要です。 –
@ R.Chappellそこからさらに1歩歩いて、動的なSQLプロシージャを取得しました...途中でポイントはありませんが、私はあなたのポイントを見ます – JohnHC
すばやく回避するには、SELECT文を使用してinsert文を作成します。SELECT 'INSERT INTO a。' || table_name || 'SELECT * FROM b。' || table_name || ';' FROM information_schema.tables WHERE table_schema = 'a'; –
さて、あなたはいつでも目的のために提供されているユーティリティを試すことができました[mysqldbcopy](https://dev.mysql.com/doc/mysql-utilities/1.5/en/utils-task-clone-db.html) – RiggsFolly