0

何百ものテーブルを持つ mysql データベースがあります。これを単一のテーブルに変換したいのですが、テーブル名がレコードに追加されます。つまり、特定のテーブルの各行/データに対して、新しいフィールドを追加します。この新しいフィールドの値はテーブル名。すべてのテーブルに新しいフィールドを作成してテーブル名を手動で挿入するのではなく、これを自動的に行う方法はありますか?これには1年かかります. このデータベースにあるレコードは、約 400000 レコードです。スクリプトを使用した mysqldump でこれを実行できますか? または他の方法ですか?

4

1 に答える 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 に答える