Преобразование многих таблиц в одну таблицу MySQL базы данных

У меня есть база данных mysql с сотнями таблиц. Я хочу преобразовать это в одну таблицу, где имя таблицы будет добавлено в записи, что означает, что для каждой строки / данных в конкретной таблице я добавлю новое поле, где в этом новом поле значение будет имя таблицы Есть ли способ сделать это автоматически, вместо того, чтобы создавать новое поле в каждой таблице и вставлять имя таблицы вручную, это займет год. Запись, которую я имею на этой базе данных, составляет около 400000 записей. Может ли mysqldump с помощью скрипта сделать это? или любым другим способом?

1 ответ

Мое предложение заключается в создании синтаксиса в форме:

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 concat('select t.*, ''', Table_Name, ''' as TableName from ', Table_Name, ' union all '
from Information_Schema.Tables

Затем вы можете положить create table линия впереди и удалить финал union all,

Другие вопросы по тегам