esendaw 2025-07-23 16:52 采纳率: 25%
浏览 6
已结题

如何把之前备份的数据库中的某张表的某列数据更新到目前数据库的这张表中

数据库更新错了数据,备份7.20号之前的,怎么把7.20号之前的某张表的某列数据更新到现在的这张表啊?
update cwipordupl_ucl
set gqty = b.gqty
from cwipordupl_ucl a,cwipordupl_ucl_250723 b
where a.mes_lot_id = b.mes_lot_id
and a.mes_hist_seq=b.mes_hist_seq

这个语句可以吗?7.20之前数据导入的话,是新建一个库还是,直接放在一个里面,真的很久没碰数据库,给忘了。用的是SQL Server

  • 写回答

5条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-07-23 17:13
    关注

    让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。

    如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
     
    若您愿意支持,欢迎直接打赏,将不胜感激!
     

    根据你的问题描述,需要将7月20日备份数据库中某张表的特定列数据更新到当前数据库的对应表中。以下是解决方案:

    1. 首先建议将备份数据导入到临时表中(而不是新建数据库),这样可以避免影响现有数据库结构。以下是完整操作步骤:
    -- 步骤1:创建临时表存放备份数据(如果尚未导入)
    CREATE TABLE cwipordupl_ucl_250723 AS SELECT * FROM cwipordupl_ucl WHERE 1=0;
    -- 然后使用数据库工具导入7.20备份数据到这个临时表
    
    
    -- 步骤2:确认数据匹配情况(建议先执行这个检查)
    SELECT COUNT(*) 
    FROM cwipordupl_ucl a
    JOIN cwipordupl_ucl_250723 b 
    ON a.mes_lot_id = b.mes_lot_id AND a.mes_hist_seq = b.mes_hist_seq;
    
    
    -- 步骤3:执行更新(你提供的SQL语法需要调整)
    UPDATE cwipordupl_ucl a
    SET gqty = b.gqty
    FROM cwipordupl_ucl_250723 b
    WHERE a.mes_lot_id = b.mes_lot_id 
    AND a.mes_hist_seq = b.mes_hist_seq;
    
    1. 对于不同数据库系统的语法差异:
    • MySQL/MariaDB语法:
    UPDATE cwipordupl_ucl a
    JOIN cwipordupl_ucl_250723 b ON a.mes_lot_id = b.mes_lot_id AND a.mes_hist_seq = b.mes_hist_seq
    SET a.gqty = b.gqty;
    
    • SQL Server语法:
    UPDATE a
    SET a.gqty = b.gqty
    FROM cwipordupl_ucl a
    INNER JOIN cwipordupl_ucl_250723 b ON a.mes_lot_id = b.mes_lot_id AND a.mes_hist_seq = b.mes_hist_seq;
    
    1. 数据恢复流程:

    "开始恢复"

    重要提醒:

    1. 操作前务必备份当前数据库
    2. 建议先在测试环境验证SQL语句
    3. 大规模更新前先检查会影响的行数
    4. 如果数据量很大,考虑分批更新

    你提供的SQL语句基本正确,但FROM子句位置需要调整(如上面示例所示)。根据你的表名后缀_250723,我假设这是7月25日的备份,请确认是否确实是7月20日前的数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 修改了问题 7月23日
  • 创建了问题 7月23日