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

标签 mysql mysqldump

我有两个使用相同模式运行的 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/

相关文章:

php - PHP cron 作业期间 mysqldump 的 MySQL 重新加载权限 : Use MySQL admin account or create unique user? 安全性?

mysql - 使用 mysqldump 忽略一张表?

MySQL 在数据库中转储特定值

mysql - 括号内选择不为空

mysql:使用 COALESCE 以逗号分隔格式选择多个行值

PHP/MySQL 根据列名匹配单元格

mysql - 选择与其他行外部/连接不同的行?

mysqldump 备份和恢复到远程服务器

Mysqldump:备份时为插入创建列名

php - 将结尾零添加到 mysql 表列