建表语句:

DROP TABLE IF EXISTS `stock_discover`;
CREATE TABLE `stock_discover` (`code` char(6) NOT NULL,`index` int(11) unsigned NOT NULL DEFAULT '0',`name` varchar(20) NOT NULL,`exchange` varchar(10) NOT NULL DEFAULT '',`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`yesterday` double unsigned NOT NULL,PRIMARY KEY (`code`,`index`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

单个添加更新
如果记录在表中不存在则进行插入,如果存在则进行更新:

sql = "INSERT INTO stock_discover VALUES ('%s', 2, '%s', 'HZ', '%s', '%s')" \" ON DUPLICATE KEY UPDATE `date` = '%s' , yesterday = '%s''"
#数据格式
data = ['000005', u'合肥', '2018-09-19 14:55:21', u'2520.64']
sql = sql % (data[0], data[1], data[2], data[3], data[2], data[3])cursor.execute(sql)

批量添加更新
在更新大量数据时可能同时遇到两个问题:
① 如果每条更新执行一次sql性能很低,也容易造成阻塞;
② 批量更新时又有可能遇到主键重复的问题
使用 ON DUPLICATE KEY UPDATE 一条sql解决批量更新和主键重复问题(id为主键),使用executemany进行批量插入

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 记录在表中不存在则进行插入,如果存在则进行更新
sql = "INSERT INTO `stock_discover` VALUES (%s, %s, %s, %s, %s, %s) " \"ON DUPLICATE KEY UPDATE `date` = VALUES(`date`) , yesterday = VALUES(yesterday)"#数据格式如下:
data_info = [('000005', 2, u'合肥', 'HZ', '2018-09-19 14:55:21', u'2520.64'),('000006', 2, u'北京', 'HZ', '2018-09-19 14:55:21', u'2694.92'),('000007', 2, u'上海', 'HZ', '2018-09-19 14:55:21', u'2745.38')]#批量插入使用executement
cursor.executemany(sql, data_info)

注意: ON DUPLICATE KEY UPDATE是mysql特有的语法,对于其他sql并不一定适用

也可以使用如下方法:

Mysql插入数据的SQL语句主要有:

1、insert into表示插入数据,数据库会检查主键,如果出现重复会报错;

2、replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;

3、insert ignore表示,如果表中如果已经存在相同的记录,则忽略当前新数据;

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
create table testtb(
id int not null primary key,
name varchar(50),
age int
);
insert into testtb(id,name,age)values(1,'bb',13);
select * from testtb;
insert ignore into testtb(id,name,age)values(1,'aa',13);
select * from testtb;
replace into testtb(id,name,age)values(1,"aa",12);
select * from testtb;

python中单个和批量增加更新的mysql(没有则插入,有则更新)相关推荐

  1. 【科学文献计量】CSSCI数据采集,转化为python中的DataFrame格式,并存放到MySQL数据库

    CSSCI数据采集,转化为python中的DataFrame格式,并存放到MySQL数据库 1 CSSCI数据采集 2 数据加载到python中并进行DataFrame类型转化 3 将DataFram ...

  2. python中单个下划线是什么意思

    python中的标识符命名规则和C/C++不一样,可以单个下划线_成为一个变量标识符. _=1 _ 一般看到别人的代码用这个来作为标识符,就表示这个是一个无关紧要的变量,但是又一定要有一个变量来承接. ...

  3. Python中单个下划线“ _”变量的用途是什么?

    这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...

  4. Python中单个下划线“_”变量的目的是什么?

    在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...

  5. 在python中如何读取批量图片_Python批量处理图片

    1.Pillow库介绍 Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存.图像显示.格式转换以及基本的图像处理操作等: 安装 pip inst ...

  6. python中关键字index_Python批量查询关键词微信指数实例方法

    教你用Python批量查询关键词微信指数. 前期准备安装好Python开发环境及Fiddler抓包工具.前期准备安装好Python开发环境及Fiddler抓包工具. 首先打开Fiddler软件,点击T ...

  7. python中图像的批量处理

    来源:https://www.jianshu.com/p/f2e88197e81d 有些时候,我们不仅要对一张图片进行处理,可能还会对一批图片处理.这时候,我们可以通过循环来执行处理,也可以调用程序自 ...

  8. linux系统下Opencv4.1.1编译安装,以及增加子函数和python中调用

    目录 Table of Contents 目录 一 源码编译和安装 添加opencv路径 二 增加并列子函数的方法 三 增加库函数形参的方法 四 cv增加子函数一些数据变量的问题 4.1 数据类型 一 ...

  9. Python中: unsupported format character ''' (0x27)

    Python中: unsupported format character ''' (0x27) 1)MySQL DB使用%运算符将参数放入查询中,因此查询字符串中的任何单个%字符都被解释为参数说明符 ...

最新文章

  1. iOS封装HTTPS双向和单向验证
  2. Codeforces Round #313 (Div. 1) B. Equivalent Strings
  3. 红帽linux登陆错误,xmanager连接RedHat出错:/usr/X11R6/bin/xterm: No such file or directory
  4. OpenCV像素点处理 1
  5. Page cache和Buffer cache[转1]
  6. 【HDU - 2030 】汉字统计 (C语言汉字编码,长知识)
  7. kalilinux安装qt_Kali Linux 安装和搜狗输入法的安装
  8. fastadmin cms使用注意一
  9. java 中方法里的参数_【Java基础】12、java中方法的参数传递机制
  10. android电视手机遥控器,tcl电视遥控器
  11. 【Python】【Flask】前端调用后端方法返回页面
  12. android中简单视频播放器demo(附githup下载源码)
  13. 南京林业大学计算机考研资料,2021南京林业大学考研历年真题复习资料
  14. 【长篇肝文7万字】模电/数电/单片机/计算机组成原理/电力电子常见笔试/面试题(合集)未完更新ing
  15. ofd发票怎么打开?ofd格式发票转换pdf格式发票的方法
  16. python为什么要安装pip_为什么您应该使用`python -m pip`
  17. 今日分享|闪魔钢化膜5.8又来了/iPhone数据线2条10.8/adidas三叶草同款89/空气炸锅/内裤3条14.9/更多...
  18. win10修改系统字体(替换OneNote中Calibri字体)
  19. Web安全(任意文件下载)
  20. webERP安装配置超详细

热门文章

  1. LBaaS 实现机制 - 每天5分钟玩转 OpenStack(125)
  2. Qt之QPushButton
  3. 多比(SVG/VML)图形控件多比(SVG/VML)图形拓扑图控件免费下载地址
  4. 动态执行c# 脚本片段
  5. C#在线获取歌词(转)
  6. 改进同步等待的网络服务端应用 (转)
  7. 【MM模块】Variances without ref to an item 容差设置
  8. 自建SE16N功能,修改数据库表数据
  9. ALV中下拉列表列的实现
  10. 四大主流BI工具比较