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

11 篇文章 0 订阅

使用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()
cursor2.close()
cursor1.close()
db.close()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值