我正在使用 MySQL 数据库。
我想从一个表中转储一组行,如果这些行具有指向其他表上的行的外键,我也想转储它们。
然后我想将这些转储加载到不同数据库中各自的表中(例如使用 LOAD DATA INFILE 命令)。所以简单地使用 select...join...into outfile
是不够的,因为结果将是一个大的连接表。
例如,表 A 有 B_id 和 C_id 列,分别指向表 B 和 C 上的行。因此,当我从表 A 中转储 3 行时,B 中的 3 个相关行和 C 中的 3 个相关行也被转储。
是否存在这样的工具/脚本?
编写一个脚本来做到这一点是非常可行的,但如果已经存在这样的工具,我不想重新发明轮子。
最佳答案
我的建议:
- 为导出创建临时表,例如A_export、B_export、C_export 等等。
- 用您要导出的行填充这些新表。使用从支持表 B、C、... 到 A_export 的连接查询使其更容易。
- 使用 mysqldump 转储这些表
- 将生成的转储文件导入目标数据库
- 重命名目标数据库中的表,删除“_export”后缀
关于mysql - 对于 MySQL,是否有工具可以从一个表中转储一组行,并从所有相关表中转储所有相关(通过外键)行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10240037/