首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >然后导出ID和列,然后使用这些值更新指定的行

问然后导出ID和列,然后使用这些值更新指定的行
EN

Stack Overflow用户
提问于 2013-12-19 22:58:30
回答 1查看 75关注 0票数 0

我有一个运行mysqldump的脚本,用于从DB1导出几个表。它在DB2上运行生成的SQL脚本。其中一个表包含一个inventory列,在导入脚本后,该列需要在DB2上保持一致。我不认为在转储/导入过程中有任何机会保留这个特定的价值,但我愿意接受这样的建议。

相反,我试图用下面的一般过程来处理这个问题。

  1. 从DB1转储指定的表
  2. 在DB2上按ID备份库存
  3. 将转储从步骤1导入DB2
  4. 在步骤2中从备份中重置DB2上的库存。

我希望通过bash完成这些任务中的每一项。

代码语言:javascript
复制
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?

我对其他流程建议非常开放,但是模式更改几乎是不可接受的。我对这项任务相当反感。我宁愿将库存分离到它自己的表中,这个表可以排除在转储/导入之外,但这将需要在应用程序层进行相当严肃的重构工作,而这是我们目前负担不起的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-20 13:21:31

我假设将第一个数据库复制到第二个数据库将删除第二个数据库。如果不是这样的话,那么这个过程就会简单一些。

如果你

1)复制包含清单的表格:

代码语言:javascript
复制
create table tcopy select * from table_with_inventory;

2) mysqldump拷贝

3)复制另一个数据库

4)还原拷贝

5)将值复制回来

代码语言:javascript
复制
update table_with_inventory
inner join tcopy on table_with_inventory.id=tcopy.id
set table_with_inventory.inventory=tcopy.inventory
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20693340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档