使用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. Mysql 表空间和 数据页空洞

    一.表空间1.表空间: innodb 引擎存储的最高层: 存放所有的数据2.独立表空间:Mysql 版本 5.6 后默认开启的单表单空间(1)Innodb 默认存储引擎页的大小为 16K :默认表空间 ...

  2. Django查询数据库返回字典dict数据

    个人观点: 个人认为,在Django项目中, 开发团队为了让使用该框架的用户都使用自带的序列化功能,从而让框架中的SQL返回值很不直观,对于直接使用SQL语句的用户很犯难. 解决: from djan ...

  3. Python自学笔记之计算机基础

    osi七层协议应用层-表示层-会话层-传输层-网络层-数据链路层-物理层 无线网协议 ethernet 物理层:网线,光纤 数据链路层:arp协议 mac地址,广播 在广播域内传播 网络层:ip地址标 ...

  4. 认识react, 并简单与vue对比

    应用场景: 负责场景下的高性能 重用组件库,组件组合 中文官网:https://reactjs.org.cn/doc/in... 特点: 声明式编码(不需要关心如何实现,只需要关注在哪里做什么) 组件 ...

  5. tornado源码简单实现

    首先基本的同步流程是: class Index(tornado.web.RequestHandle): def get(self): self.write('hellow,word') app = t ...

  6. vue.js(1)--创建vue实例的基本结构

    vue实例基本结构与MVVM框架 (1)vue实例基本结构 <!DOCTYPE html> <html lang="en"> <head> &l ...

  7. gradle 刷新打包的时候报错

    java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierIm ...

  8. 2019-2020-1 20199319《Linux内核原理与分析》第二周作业

    计算机是如何工作的 反汇编一个简单的C程序 1.在实验环境下,创建main.c,并进入该文件进行代码的编写 在VIM文本编辑器中编写完代码后按"Shift"+":&quo ...

  9. Git入门指南九:远程仓库的使用【转】

    转自:http://blog.csdn.net/wirelessqa/article/details/20152651 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 十三 ...

  10. Kendo UI for jQuery使用教程:支持Web浏览器

    [Kendo UI for jQuery最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support ...