【发布时间】:2021-03-03 21:20:18
【问题描述】:
我有一个 MySQL 数据库 separate_data,它由 200 个随机名称的表组成(例如 first_table、second_table、...)
这些表中的每一个都具有相同的结构和索引。
总大小约为 30GB。
我想将所有这些数据复制到名为 new_database 的新 MySQL 数据库中,在表 all_data 中,保持结构(但删除 auto_increment 列),并添加一列来指示原始表。
所以,例如,情况是:
first_table
+----+------+------+
| id | Col2 | Col3 |
+----+------+------+
| 1 | aaa | xxx |
| 2 | aaa | yyy |
| 3 | bbb | zzz |
+----+------+------+
second_table
+----+------+------+
| id | Col2 | Col3 |
+----+------+------+
| 1 | aaa | xxx |
| 2 | ccc | yyy |
| 3 | ddd | zzz |
+----+------+------+
生成的all_data 表应该是
+------+------+---------------+
| Col2 | Col3 | Original |
+------+------+---------------+
| aaa | xxx | first_table |
| aaa | yyy | first_table |
| bbb | zzz | first_table |
| aaa | xxx | second_table |
| ccc | yyy | second_table |
| ddd | zzz | second_table |
+------+------+---------------+
问题在于数据量。因此,在 PHP 中执行此操作不是一种选择。我对一些手动工作没问题(例如,首先为separate_data 创建一个数据转储,然后将此数据转储注入new 数据库或类似的东西。
【问题讨论】:
标签: mysql sql union create-table