1

对于测试代码,我使用 SQLYog 的“复制到不同的主机”选项将数据从实时数据库复制到测试数据库。大多数时候,这没关系。但是对于某些表,数据集绝对是巨大的,我只需要相对较小的数据子集进行测试。Copy to different host 对话框为您提供仅复制结构或复制结构和数据的选项。

如果我只想要部分数据,我必须运行select * on table where condition查询,将结果导出为 SQL 查询,将该查询导入测试主机并运行它。虽然这可行,但它并不是一个有趣的过程,特别是考虑到即使“小”测试数据子集仍然是很多行的情况。如果已经复制了一些数据,那么这会增加更多的复杂性,因为我必须编写一个查询来获取目标上的键列表,然后where key not in (key list)在主要条件上添加一个条件。

有没有办法让“复制到不同的主机”功能只选择性地将行复制到目标数据库?

4

1 回答 1

2

目前无法在SQLyog复制工具中对单个行使用 WHERE 条件。只要只选择一个表进行复制就可以了,但是如果有更多表就没有意义了。

您现在可以做的是在源上创建一个小的“虚拟”表并复制这个表。工作流程可能是这样的:

1) 将表创建为newtableSELECT * FROM oldtableWHERE ...

newtable2) 现在使用 SQLyog GUI 进行复制,然后根据需要将其放到源代码上

3)newtable如果需要,在目标上重命名

这将减少网络流量,仅考虑您要传输的行。并且您将避免导出到文件,因为“减少”保存在源服务器内(不涉及文件系统或网络)。

于 2011-10-25T09:07:14.150 回答