python中单个和批量增加更新的mysql(没有则插入,有则更新)
建表语句:
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(没有则插入,有则更新)相关推荐
- 【科学文献计量】CSSCI数据采集,转化为python中的DataFrame格式,并存放到MySQL数据库
CSSCI数据采集,转化为python中的DataFrame格式,并存放到MySQL数据库 1 CSSCI数据采集 2 数据加载到python中并进行DataFrame类型转化 3 将DataFram ...
- python中单个下划线是什么意思
python中的标识符命名规则和C/C++不一样,可以单个下划线_成为一个变量标识符. _=1 _ 一般看到别人的代码用这个来作为标识符,就表示这个是一个无关紧要的变量,但是又一定要有一个变量来承接. ...
- Python中单个下划线“ _”变量的用途是什么?
这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...
- Python中单个下划线“_”变量的目的是什么?
在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...
- 在python中如何读取批量图片_Python批量处理图片
1.Pillow库介绍 Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存.图像显示.格式转换以及基本的图像处理操作等: 安装 pip inst ...
- python中关键字index_Python批量查询关键词微信指数实例方法
教你用Python批量查询关键词微信指数. 前期准备安装好Python开发环境及Fiddler抓包工具.前期准备安装好Python开发环境及Fiddler抓包工具. 首先打开Fiddler软件,点击T ...
- python中图像的批量处理
来源:https://www.jianshu.com/p/f2e88197e81d 有些时候,我们不仅要对一张图片进行处理,可能还会对一批图片处理.这时候,我们可以通过循环来执行处理,也可以调用程序自 ...
- linux系统下Opencv4.1.1编译安装,以及增加子函数和python中调用
目录 Table of Contents 目录 一 源码编译和安装 添加opencv路径 二 增加并列子函数的方法 三 增加库函数形参的方法 四 cv增加子函数一些数据变量的问题 4.1 数据类型 一 ...
- Python中: unsupported format character ''' (0x27)
Python中: unsupported format character ''' (0x27) 1)MySQL DB使用%运算符将参数放入查询中,因此查询字符串中的任何单个%字符都被解释为参数说明符 ...
最新文章
- iOS封装HTTPS双向和单向验证
- Codeforces Round #313 (Div. 1) B. Equivalent Strings
- 红帽linux登陆错误,xmanager连接RedHat出错:/usr/X11R6/bin/xterm: No such file or directory
- OpenCV像素点处理 1
- Page cache和Buffer cache[转1]
- 【HDU - 2030 】汉字统计 (C语言汉字编码,长知识)
- kalilinux安装qt_Kali Linux 安装和搜狗输入法的安装
- fastadmin cms使用注意一
- java 中方法里的参数_【Java基础】12、java中方法的参数传递机制
- android电视手机遥控器,tcl电视遥控器
- 【Python】【Flask】前端调用后端方法返回页面
- android中简单视频播放器demo(附githup下载源码)
- 南京林业大学计算机考研资料,2021南京林业大学考研历年真题复习资料
- 【长篇肝文7万字】模电/数电/单片机/计算机组成原理/电力电子常见笔试/面试题(合集)未完更新ing
- ofd发票怎么打开?ofd格式发票转换pdf格式发票的方法
- python为什么要安装pip_为什么您应该使用`python -m pip`
- 今日分享|闪魔钢化膜5.8又来了/iPhone数据线2条10.8/adidas三叶草同款89/空气炸锅/内裤3条14.9/更多...
- win10修改系统字体(替换OneNote中Calibri字体)
- Web安全(任意文件下载)
- webERP安装配置超详细