使用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. 赛道修建 NOIP 2018 d1t3

    题目大意 最小值最大 考虑二分 二分答案 判断能不能构成m条路径 很明显满足单调性 可行 思考如何判断 对于一个节点 它的儿子会传上来一些路径 这些路径只有三种处理方式 一.传上去(只能传一条) 二. ...

  2. 03: redis高级

    1.1 布隆过滤器 1.布隆过滤器是什么?(判断某个key一定不存在) 1. 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构 2. 特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存 ...

  3. Python 入门之 内置模块 -- collections模块

    Python 入门之 内置模块 -- collections模块 1.collections -- 基于Python自带的数据类型之上额外增加的几个数据类型 from collections ​ 在内 ...

  4. day16 常用模块 sys os json pickle

          知识点 os:和操作系统相关sys:和解释器相关 json:和操作JSON(一种数据交换格式)相关pickle:序列化 hashlib:加密算法Collections:集合类型       ...

  5. Centos7搭建FTP服务

    1.安装 vsftpd ​[root@CentOS ftp]# yum -y install vsftpd2.启动 vsftpd 服务 ​[root@CentOS ~]# systemctl star ...

  6. .net core 2.2.0 SOAP踩坑

    首先确认下面几个程序集是最新版本: <PackageReference Include="System.ServiceModel.Http" Version="4. ...

  7. Java的duotaix

    今天看到博客园上一位原创的博文讲解Java多态性,觉得不错,不过没有解释,特此注释,侵删 public class MyTest { public static void main(String ar ...

  8. MySQL的简单条件判断语句

    在MySQL中条件判断语句常用于数据转换,基于现有数据创建新的数据列,使用场景还是比较多. 基础样式: CASE WHEN`条件`THEN`结果` ELSE`默认结果` END 在同一条判断语句中可以 ...

  9. zabbix 问题

    初始化账号和密码 Admin zabbix 出现 :Zabbix server is running No检查zabbix是否有运行 ps -ef|grep zabbix systemctl rest ...

  10. string::front

    char& front(); const char& front() const;功能:返回string对象的首个字符,可以改变它的值 #include <string># ...