mysql - 如何检索 MYSQL 记录作为 INSERT 语句

标签 mysql

我正在尝试想出同步 2 个不同数据库表的特定行的最佳方法。因此,例如,在不同的数据库中有 2 个产品表......

来源数据库

product{
    merchant_id,
    product_id,
    ... additional fields
}

目标数据库

product{
    merchant_id
    product_id
    ... additional fields
}

因此,两者的数据库模式相同。但是,我希望选择具有特定 merchant_id 的记录,从目标表中删除所有具有该 merchant_id 的记录,并将这些记录替换为具有相同 merchant_id 的原始数据库中的记录。

我的第一个想法是使用 mysqldump,解析出创建表语句,然后只运行插入语句。虽然看起来很痛苦。所以我想知道是否有更好的技术来做到这一点。

我认为 mysql 有一些方法可以创建 INSERT 语句作为 SELECT 语句的输出,因此您可以定义如何将特定记录信息插入到新数据库中。

任何帮助将不胜感激,非常感谢。

最佳答案

phpMyAdmin具有此功能的一部分:您可以运行查询,然后将该查询的结果导出到包含 CREATE 语句的文件中。

更新:mysqldump 也有:Link

mysqldump -u username -p --where="id='merchant_id'" databasename

关于替换商家 ID,这部分我还不完全理解。您最好对它们进行手动搜索+替换。你能举出两个这样的记录的真实例子吗?

关于mysql - 如何检索 MYSQL 记录作为 INSERT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2821541/

相关文章:

mysql - mysql中同一字段中的多个值

php - 从同一列中的多个mysql行中查找整数总和

mysql - 将查询的所有结果插入表中

mysql - 如何修改mysql存储过程中select的输出列名

mysql - UTF 8 - 错误 1366 (HY000) - 数据插入时的字符串值不正确

mysql - 请解释以下查询的工作原理?

MySQL:我想插入带有反斜杠的文件目录,但是当我查看该列时,我没有看到反斜杠

具有排序结果的 MySQL 用户排名

php - HTML 表单作为 get 而不是 post

mysql - 表定义不正确; DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列