在我之前的工作中,我能够使用以下语句轻松地从生产环境中复制数据:
从表名@UNIXPROD2 INSERT INTO 表名@UNIXTEST2
我目前工作的数据库不是以这种方式设置的。
所以,我对 MySQL 5.0+ 做了一些研究,因为这是我们为我们的一位客户使用的。我遇到了 FEDERATED 表,所以当我阅读时,我发现了这个(在这里):
从 MySQL 5.0.46 开始,FEDERATED 执行批量插入处理,以便将多行批量发送到远程表。这提供了性能改进。此外,如果远程表是事务性的,它使远程存储引擎能够在发生错误时正确执行语句回滚。此功能具有以下限制:
对我来说,这表明 (A) 我可以将数据从我们的 prod 数据库复制到我们的 test 数据库;(B) 在联合表上执行的任何操作也会在源表上处理,这不是我想要做的。我有一些需要运行的脚本,我想针对实际的产品数据运行它,以确保在我在产品环境中使用它之前它可以正常工作。
我的问题:我的解释正确吗?
假设是,我试过:
- select * from database.tablename@ipaddress,但收到一条错误消息,告诉我检查我正在运行的版本的 MySQL 手册,这就是我在点击“发布您的问题”后要做的事情。
我将不胜感激在这件事上的任何帮助。
编辑:经过进一步研究,我认为可能能够使用 OUTFILE 和 INFILE 来做我需要的事情,我将在 prod 表上使用 OUTFILE,然后在测试表上使用 INFILE 这些行。想法?