mysqldump 与 INSERT ... ON DUPLICATE

Xup*_* MV 25 mysql mysqldump backup

我想将数据从一个数据库合并到另一个数据库。所以我创建转储,mysqldump然后将其导入另一个数据库(具有相同的表结构)。在这种情况下,我没有任何问题(例如重复条目或其他问题)。

但是为了测试目的我做了一些合并,稍后我会做最终合并。所以,我想执行几次合并(数据可能会更改)。请注意,我的表中的行永远不会删除,只能插入或更新。

我可以使用 ON DUPLICATE 选项创建 mysqldump 吗?或者我可以合并插入新数据并更新修改数据的转储?

当然,我可以ON DUPLICATE手动插入转储,但我想自动化合并过程。

Rol*_*DBA 41

有一些选项可以帮助您:

  --insert-ignore     Insert rows with INSERT IGNORE.
  --replace           Use REPLACE INTO instead of INSERT INTO.
  -t, --no-create-info
                      Don't write table creation info.
Run Code Online (Sandbox Code Playgroud)

牢记这个范式

  • mysqldump 从 DB1 到 DUMP1 的所有内容
  • 将 DUMP1 加载到 DB3
  • mysqldump 使用 --replace(或 --insert-ignore)和 --no-create-info 将 DB2 中的所有内容转储到 DUMP2 中
  • 将 DUMP2 加载到 DB3