Mysql数据导出工具

时间:2017-04-05 08:03:43

标签: java mysql database vagrant

所以,假设我有一个包含4个表{A,B,C,D}的SQL(Mysql)数据库

我想创建一个测试数据库,其中包含来自第一个数据库的数据子集(包括时间和类型)。

所以例如: "我想创建一个新的(结构相同的)数据库,其中包含用户" bob"的所有数据。过去两周。"

天真的方法是从第一个数据库转储两周的数据,使用vagrant / chef来启动一个新的空数据库并导入转储数据。

但是,这不起作用,因为每个表都有彼此的外键。 所以,如果我有两周的" A"的数据,它可能依赖来自" D"的一年的数据。

我目前的解决方案是使用我的java应用程序的数据层将数据加载到内存中,然后将其插入到数据库中。但是,这不可持续/可扩展。

所以,以迂回的方式,我的问题是,有没有人知道任何工具或技巧来迁移"完整的"考虑到1个表的时间段并包括来自其他表的所有其他相关数据,从一个数据库到另一个数据库的数据集?

任何建议都很棒:)

2 个答案:

答案 0 :(得分:1)

尝试“天真的方法”,但先SET FOREIGN_KEY_CHECKS=0;,然后再运行备份查询,然后SET FOREIGN_KEY_CHECKS=1;

答案 1 :(得分:1)

有一种方法可以用部分数据重建类似的数据库,不是那么简单,但可以使用:

  1. 创建新数据库(仅限架构),例如使用buckupschema comparer工具。
  2. 下一步是复制表格数据。您可以借助数据比较工具(查看模式比较器链接)来实现。选择所需的表格并检查记录数据以进行同步。