当前位置: 首页 > news >正文

使用FastAPI+Sqlalchemy从一个数据库向另一个数据库更新数据(sql语句版)


from sqlalchemy import create_engine, text
from sqlalchemy.orm import sessionmaker

# 配置数据库连接(示例为PostgreSQL->MySQL)
SRC_DB_URL = 'postgresql://user:pass@source_host:5432/source_db'
DST_DB_URL = 'mysql+pymysql://user:pass@dest_host:3306/dest_db'

# 创建引擎和会话
src_engine = create_engine(SRC_DB_URL)
dst_engine = create_engine(DST_DB_URL)
SrcSession = sessionmaker(bind=src_engine)
DstSession = sessionmaker(bind=dst_engine)

def migrate_with_raw_sql():
    with SrcSession() as src_session, DstSession() as dst_session:
        # 从源数据库查询数据(使用原生SQL)
        query = text("SELECT id, name, age FROM users WHERE updated_at > :last_update")
        src_data = src_session.execute(query, {"last_update": "2025-01-01"}).fetchall()
        
        # 构建批量更新SQL语句
        update_sql = text("""
            UPDATE users 
            SET name = :name, age = :age 
            WHERE id = :id
        """)
        
        # 执行批量更新
        for row in src_data:
            dst_session.execute(
                update_sql, 
                {"id": row.id, "name": row.name, "age": row.age}
            )
        
        dst_session.commit()
        print(f"通过原生SQL语句完成 {len(src_data)} 条记录更新")

if __name__ == '__main__':
    migrate_with_raw_sql()
 

http://www.xdnf.cn/news/728695.html

相关文章:

  • 在线政治采购系统架构构建指南
  • 【设计模式】责任链模式
  • Scratch节日 | 龙舟比赛 | 端午节
  • 历年南京大学计算机保研上机真题
  • 信息化项目验收测试:MES 系统验收测试的测试重点
  • 海思 35XX MIPI读取YUV422
  • USB MSC SCCI
  • 力扣HOT100之动态规划:322. 零钱兑换
  • web自动化-Selenium、Playwright、Robot Framework等自动化框架使用场景优劣对比
  • 拉普拉斯噪声
  • eBest智能价格引擎系统 助力屈臣氏饮料落地「价格大脑」+「智慧通路」数字基建​
  • 医疗IT系统绝缘监测及故障定位,绝缘监测技术在医院关键区域的应用
  • t015-预报名管理系统设计与实现 【含源码!!!】
  • 【请关注】各类数据库优化,抓大重点整改,快速优化空间mysql,Oracle,Neo4j等
  • Python打卡第40天
  • 开发效率提升小技巧:快速提取图标资源的解决方案
  • Unity 中实现首尾无限循环的 ListView
  • 设计模式之简单工厂模式
  • 前端面试准备-3
  • openssl-aes-ctr使用openmp加速
  • Java大师成长计划之第35天:未来展望与个人总结
  • shell编程笔记
  • 预处理深入详解:预定义符号、宏、命名约定、命令行定义、条件编译、头文件的包含
  • 【大模型】情绪对话模型项目研发
  • C++继承与构造函数调用详解
  • flash写失败分析
  • Linux系统编程收尾(35)
  • 【C/C++】cmake实现Release版本禁用调试接口技巧
  • [定昌linux开发板]启用用户唯一性限制
  • Android全局网络监控最佳实践(Kotlin实现)