使用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()

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

利用pymysql同时修改两张表的数据的更多相关文章

  1. 关于跨DB增量(增、改)同步两张表的数据小技巧

    有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...

  2. django同时查询两张表的数据,合并检索对象返回

    原始需求: 1.一篇文章内容分N个版块,每篇文章的版块数量不同. 2.有个文章搜索功能,需要同时搜索标题和内容. 实现思路: 1.由于每篇文章的内容版块数量不同,因此将每个文章的标题和内容分开存入2张 ...

  3. 【第十五篇】easyui datagrid的列编辑,同时插入两张表的数据进去

    看图说话. 需求:插入两张表,上面的表单是第一张表的内容,下面的两个表格是第二张详情表的内容,跟第一张表的id关联 第二张表有一个列是需要用户手动填写添加的. 国际惯例,上代码 <div id= ...

  4. JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)

    作业一:两个列表之间数据从一个列表移动到另一个列表 <div style="width:600px; height:500px; margin-top:20px"> & ...

  5. Oracle将两张表的数据插入第三张表且第三张表中不存在

    1.由于是先查再插所以不能使用insert into table1() values(), 要使用insert into table1() select * table2,不能使用values. 2. ...

  6. 利用SQL SERVER对比两张表的数据一致性

    CREATE TABLE [dbo].[A](    [ID] [int] NULL,    [NAME] [varchar](50) NULL,    [SEX] [varchar](50) NUL ...

  7. mysql 两张表的数据设置主外健关联删除

    image_group 主表 image 副表 alter table image add constraint fk_group_idforeign key (group_id)references ...

  8. 6.10---mybatis中两张表查询数据dao层

  9. SQLSERVER中如何快速比较两张表的不一样

    SQLSERVER中如何快速比较两张表的不一样 不知不觉要写2014年的最后一篇博文了~ 一般来说,如何检测两张表的内容是否一致,体现在复制的时候发布端和订阅端的两端的数据上面 我这里罗列了一些如何从 ...

随机推荐

  1. limux密钥对配置登陆主机

    1. Linux主机免密码使用密钥登陆 这里假设主机A(192.168.0.113)用来远程连接主机B(192.168.0.186) 在主机A上执行如下命令来生成配对密钥:ssh-keygen -t ...

  2. [..net core]4.入口,Main方法 及InProcess

    通常控件台程序都有一个main方法, public class Program { public static void Main(string[] args) { CreateWebHostBuil ...

  3. jstat命令使用

    jstat命令使用 jstat是JDK自带的一个轻量级小工具,全称"Java Virtual Machine statistics monitoring tool",它位于java ...

  4. 剑指offer-3:跳阶梯

    三.跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析 青蛙每一次跳跃只有两种选择:一是再跳1级阶梯到达第n ...

  5. css 文本单行显示溢出时出现省略号 多行显示溢出时出现省略号 首行缩进

    一.文本单行显示溢出时出现省略号 二.文本多行显示溢出时出现省略号(这种样式只能在webkit和移动端使用,包括小程序,不能设置固定高度) 三.首行缩进两字符 text-indent: 2em; 四. ...

  6. python gRPC简单示例

    Ubuntu18.04安装gRPC protobuf-compiler-grpc安装 sudo apt-get install protobuf-compiler-grpc protobuf-comp ...

  7. MySQL主备同步延迟

    今天看到mycat的日志,发现在wrapper.log中频繁warning:slave延迟23006秒 查看数据指标: show engine innodb status正常,而且slave的拷贝点在 ...

  8. shell编程注意点

    1.标准输入输出转存不能随便用,例如: echo "export PATH=/home/huangmr/jdk/bin:\$PATH" >> /home/huangmr ...

  9. laravel5.8 eloquent

    https://learnku.com/docs/laravel/5.8/eloquent/3931 示例1: $flights = App\Flight::all(); foreach ($flig ...

  10. mongoose 开源http库

    Mongoose是一个用C编写的网络库.它为客户端和服务器模式实现TCP,UDP,HTTP,WebSocket,CoAP,MQTT的事件驱动的非阻塞API. 设计理念: Mongoose有三个基本的数 ...