我有两个使用相同模式运行的 MySQL 实例。一个在云端;一个在我的本地盒子上。 local-box 版本在其主表中需要几个测试行。
实际上,我想对生产表上的单个记录执行类似 mysqldump 或 mysqlhotcopy 之类的操作,然后将该记录“恢复”到本地实例上的同一个表中。我不想复制整个表格。如果本地表上有行,我希望它们保持不变。
我对复制行的 PK 发生变化没有意见。我不关心外键,如果有的话。
这个表很大很复杂,我用 select 语句打印记录然后格式化它以进行插入对我来说很重要。
我有哪些选择?
最佳答案
如果您已经熟悉 mysqldump,我会提醒您 mysqldump 有一个 --where
option , 因此如果您为此编写条件,您可以获得一行:
mysqldump databasename tablename --where "id=12345" --no-create-info --skip-add-locks --host=db1 | \
mysql --host=db2
你也可以使用 SELECT...INTO OUTFILE将您想要的任何查询的结果转储到平面文件中,甚至是单行查询。那么LOAD DATA INFILE在另一个实例上导入该文件。
您也可以用您选择的语言编写一个简单的脚本。连接到两个实例。从源实例中选择一行,将其保存在脚本的一个变量中。然后形成一个 INSERT 命令以针对目标实例执行。这可能不是移动大量数据的最有效方式,但对于单行来说没问题。
关于mysql - 如何将单行/记录从一个 MySQL 实例复制到另一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594521/