• 利用pymysql同时修改两张表的数据


    使用pymysql操作数据库中相关联的两张表
    需求:两张表中分别有一个字段是json格式,需要往json中再插入一个属性值’container_cloud’=’fasle’。

    import pymysql
    import json

    db = pymysql.connect("host","user","password","dbname")
    cursor1 = db.cursor()  #操作第一张表
    cursor2 = db.cursor()  #操作第二张表
    try:
    #通过第一张表,查询出需要修改的字段,和第二张表相关联的字段
    cursor1.execute("select id,resc_metadata,apply_id from approvedresc_rescdetail where resource_type='Job';")
    values = cursor1.fetchall()
    for id,resc_metadata,apply_id in values:
    resc_metadata = json.loads(resc_metadata)
    if resc_metadata.get('container_cloud') == None:
    resc_metadata['container_cloud']='false'
    resc_metadata = json.dumps(resc_metadata)
    sql_approved = "update approvedresc_rescdetail set resc_metadata=%s where id=%s;"
    cursor1.execute(sql_approved,(resc_metadata,id))

    sql_apply1 = "select resc_metadata from apply_rescdetail where id=%s;"
    cursor2.execute(sql_apply1, [apply_id])
    value = cursor2.fetchone()
    apply_resc_metadata = json.loads(value[0])
    if apply_resc_metadata.get('container_cloud') == None:
    apply_resc_metadata['container_cloud']='false'
    apply_resc_metadata = json.dumps(apply_resc_metadata)
    sql_apply2 = "update apply_rescdetail set resc_metadata=%s where id=%s;"
    cursor2.execute(sql_apply2,(apply_resc_metadata,apply_id))
    print(id,apply_id)
    db.commit()
    except Exception as e:
    print('error:',e)
    db.rollback(http://www.amjmh.com/v/BIBRGZ_558768/)
    cursor2.close()
    cursor1.close()
    db.close()

    ---------------------

  • 相关阅读:
    GCD实现多个定时器,完美避过NSTimer的三大缺陷(RunLoop、Thread、Leaks)
    iOS适配UIViewView/WKWebView,H5生成长图,仿微信进度条
    翻译jquery官方的插件制作方法
    javascript引用和赋值
    薯片公司真实JS面试题(乐视TV)
    caller、call、apply、callee的用法和意思
    常用javascript类型判断
    Git 常用命令笔记(不定期持续记录)
    sublime text2 emmet 安装
    hash"#"
  • 原文地址:https://www.cnblogs.com/ly570/p/11357433.html
Copyright © 2020-2023  润新知