为了测试代码,我使用SQLYog的“复制到不同的主机”选项将数据从实时数据库复制到测试数据库。大多数情况下,这是可以的。但对于某些表,数据集绝对是巨大的,我只需要相对较小的数据子集来进行测试。复制到其他主机对话框提供了仅复制结构或复制结构和数据的选项。
如果我只需要部分数据,我必须运行select * on table where condition查询,将结果导出为SQL查询,然后将该查询导入到测试主机中并运行它。虽然这是可行的,但这并不是一个有趣的过程,特别是在测试数据的“小”子集仍然有很多行的情况下。如果某些数据已经被复制,则会进一步增加复杂性,因为我必须编写一个查询来获取目标上的键列表,然后在主条件上添加一个where key not in (key list)条件。
有没有办法让“复制到不同的主机”功能只有选择性地将行复制到目标数据库?
发布于 2011-10-25 17:07:14
目前不能在SQLyog复制工具中对单个行使用WHERE条件。只要只选择一个表进行复制,就可以了,但是如果有更多的表,这就没有意义了。
你现在能做的就是在源代码上创建一个小的“虚拟”表,然后复制这个表。工作流程可能如下所示:
1)将表newtable创建为SELECT * FROM oldtable WHERE ...
2)现在使用SQLyog图形用户界面拷贝newtable,如果需要,下一步将其放在源上
3)如果需要,在目标上重命名newtable
这将减少网络流量,使其只考虑要传输的行。您将避免导出到文件,因为“缩减”保留在源服务器中(不涉及文件系统或网络)。
https://stackoverflow.com/questions/6816528
复制相似问题