何百ものテーブルを持つ mysql データベースがあります。これを単一のテーブルに変換したいのですが、テーブル名がレコードに追加されます。つまり、特定のテーブルの各行/データに対して、新しいフィールドを追加します。この新しいフィールドの値はテーブル名。すべてのテーブルに新しいフィールドを作成してテーブル名を手動で挿入するのではなく、これを自動的に行う方法はありますか?これには1年かかります. このデータベースにあるレコードは、約 400000 レコードです。スクリプトを使用した mysqldump でこれを実行できますか? または他の方法ですか?
質問する
57 次
1 に答える
0
私の提案は、次の形式の構文を生成することです。
create table xxx as
select t.*, 'table1' as TableName from table1 t union all
select t.*, 'table2' as TableName from table2 t union all
. . .
以下を使用して select ステートメントを作成できます。
select concat('select t.*, ''', Table_Name, ''' as TableName from ', Table_Name, ' union all '
from Information_Schema.Tables
次に、行を前に置きcreate table
、最後のunion all
.
于 2013-01-30T01:51:37.440 に答える