我如何将单个行/记录从一个MySQL实例复制到另一个?

问题描述 投票:6回答:1

我有两个以相同模式运行的MySQL实例。一个在云中;另一个在云中。一个在我的本地盒子上。本地盒版本在其主表中需要几个测试行。

有效地,我想对生产表上的单个记录执行类似mysqldump或mysqlhotcopy的操作,然后将该记录“还原”到本地实例的同一表中。我不想复制整个桌子。如果本地表上有行,我希望将它们单独保留。

复制的行的PK更改,我很好。我不在乎外键,如果有的话。

该表又大又复杂,以至于我无法使用select语句打印记录,然后对其进行格式化以进行插入。

我有什么选择?

mysql mysqldump
1个回答
10
投票

[如果您已经熟悉mysqldump,我会提醒您mysqldump有一个--where option,因此如果您为它写条件,则可以得到一行:

--where

您还可以使用mysqldump databasename tablename --where "id=12345" --no-create-info --skip-add-locks --host=db1 | \ mysql --host=db2 将所需查询的结果转储到平面文件中,甚至是单行查询。然后SELECT...INTO OUTFILE在另一个实例上导入该文件。

您还可以根据自己的语言编写简单的脚本。连接到两个实例。从源实例中选择一行,然后将其保存在脚本的变量中。然后形成一个INSERT命令对目标实例执行。这可能不是移动大量数据的最有效方法,但是对于单行来说就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.