所以,假设我有一个包含4个表{A,B,C,D}的SQL(Mysql)数据库
我想创建一个测试数据库,其中包含来自第一个数据库的数据子集(包括时间和类型)。
所以例如: "我想创建一个新的(结构相同的)数据库,其中包含用户" bob"的所有数据。过去两周。"
天真的方法是从第一个数据库转储两周的数据,使用vagrant / chef来启动一个新的空数据库并导入转储数据。
但是,这不起作用,因为每个表都有彼此的外键。 所以,如果我有两周的" A"的数据,它可能依赖来自" D"的一年的数据。
我目前的解决方案是使用我的java应用程序的数据层将数据加载到内存中,然后将其插入到数据库中。但是,这不可持续/可扩展。
所以,以迂回的方式,我的问题是,有没有人知道任何工具或技巧来迁移"完整的"考虑到1个表的时间段并包括来自其他表的所有其他相关数据,从一个数据库到另一个数据库的数据集?
任何建议都很棒:)
答案 0 :(得分:1)
尝试“天真的方法”,但先SET FOREIGN_KEY_CHECKS=0;
,然后再运行备份查询,然后SET FOREIGN_KEY_CHECKS=1;
答案 1 :(得分:1)
有一种方法可以用部分数据重建类似的数据库,不是那么简单,但可以使用: