我有一个运行mysqldump的脚本,用于从DB1导出多个表。它在DB2上运行生成的SQL脚本。其中一个表包含一个inventory
列,在导入脚本后需要在DB2上保持一致。我不认为在转储/导入过程中有任何保留该特定价值的机会,但我会接受这些建议。
相反,我试图通过以下一般过程来解决这个问题。
我希望从bash执行这些任务。
ssh <server where DB1 lives>
mysqldump -u'' -p DB1 t1 t2 t3 > dump.sql
scp dump.sql <server where DB2 lives>
mysql ??? > inventory_backup.sql?
mysql -u'' -p DB2 < dump.sql
??? inventory_backup.sql?
我对替代流程建议非常开放,但架构变更几乎不在桌面上。我对此任务感到反感。我只是将库存分成它自己的表,可以从转储/导入中排除,但这需要在应用程序层中进行相当严重的重构工作,我们不能这样做现在可以承受。
答案 0 :(得分:1)
我假设将第一个数据库复制到第二个数据库会清除第二个数据库。如果不是这样,那么这个过程可能会更简单一些。
如果你
怎么样?1)复制包含库存的表格:
create table tcopy select * from table_with_inventory;
2)mysqldump tcopy
3)复制其他数据库
4)恢复tcopy
5)将值复制回来
update table_with_inventory
inner join tcopy on table_with_inventory.id=tcopy.id
set table_with_inventory.inventory=tcopy.inventory