gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:21:57 25 4
gpt4 key购买 nike

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

相反,我尝试通过以下一般流程来解决这个问题。

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

我希望从 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?

我对替代流程建议持开放态度,但模式更改几乎是不可能的。我对这个任务比较反感。我宁愿将库存分离到它自己的表中,该表可以从转储/导入中排除,但这需要在应用程序层中进行相当认真的重构工作,而我们目前无法承担。

最佳答案

我假设将第一个数据库复制到第二个数据库会清除第二个数据库。如果不是这种情况,那么过程可能会更简单一些。

如果你呢

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

关于mysql - 导出 ID 和列,然后使用这些值更新指定的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com