问题
我在 2 台 docker 机器中有 2 个 mysql 数据库与 sqlalchemy 连接。
它们内部都有相同的架构和数据。
现在我想将数据库1中的数据复制到另一个数据库中,将2个mysql数据库合并为1。可以这样做吗?
回答1
是的你可以:
在要复制的数据库上运行此命令:
mysqldump --no-create-info {yourdbname} > {yourdbname}.sql
然后在您要导入的数据库上:
mysql {yourdbname} < {yourdbname}.sql
您可能会遇到主键和/或重复记录的问题。 遗憾的是,从那时起,您将不得不生成 SQL 以使用更改的主键导出数据,同时保持外键关系完好无损。
这第二个复杂问题需要一个过程来查询信息模式:
- 从信息模式中选择表名
- 使用信息模式选择主键
- 为每个表选择 max(primary key)。
- 使用信息模式创建 SELECT 查询,在其中您将先前的 max(primary key) 添加到主键,并将输出写入数据文件。
在相关的外键上,您还必须从相关表中添加相同的最大(主键)值。 编写代码会多一些,但是 50-80 行的存储过程应该可以完成。
更多相关内容:请点击查看