我有一个包含数百个表的 mysql 数据库。我想将其转换为单个表,其中表名将添加到记录中,这意味着对于特定表中的每一行/数据,我将添加一个新字段,在这个新字段中,值将是表名。有什么方法可以自动执行此操作,而不是我必须在每个表上创建一个新字段并手动插入表名,这将需要一年时间。我在这个数据库上的记录大约是 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 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 回答