对于MySQL,是否有工具从一个表转储一组行,并从所有相关表中转储所有相关(通过外键)的行?

时间:2012-04-20 03:57:42

标签: mysql mysqldump

我正在使用MySQL db。

我想从一个表中转储一组行,如果这些行的foriegn键指向其他表上的行,我也想转储它们。

然后我想将这些转储加载到不同数据库的各自表中(例如使用LOAD DATA INFILE命令)。所以简单地使用select...join...into outfile是不够的,因为结果将是一个大的连接表。

例如,表A具有B_id和C_id列,分别指向表B和C上的行。因此,当我从表A中转储3行时,B中的3个相关行和C中的3个行也被转储。

这样的工具/脚本是否存在?

编写一个脚本来做到这一点是非常可行的,但如果这样的工具已经存在,我不想重新发明轮子。

1 个答案:

答案 0 :(得分:0)

我的建议:

  1. 为导出创建临时表,例如A_export,B_export,C_export等。
  2. 使用要导出的行填充这些新表。使用支持表B,C,...到A_export的连接查询,使其更容易。
  3. 使用mysqldump转储这些表
  4. 将生成的转储文件导入目标数据库
  5. 重命名目标数据库中的表,删除“_export”后缀