Python3 操作 MySQL 插入一条数据并返回主键 id的实例


Posted in Python onMarch 02, 2020

Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据

#!/usr/bin/env python3
# -*- coding: UTF-8 -*- 

import pymysql 

db = pymysql.connect(**db_conf)
cursor = db.cursor()
cursor.execute(sql)

# 最后插入行的主键id
print(cursor.lastrowid)

# 最新插入行的主键id
print(conn.insert_id())

conn.commit()

使用 cursor.lastrowid 和 conn.insert_id() 时一定要在 conn.commit() 之前

由于数据库的安全机制决定,其中一个进程执行完成一条语句时,此时只有这个进程能看到数据。如果想要其他的进程也能看到数据,就需要使用 conn.commit() 提交,这样就保证了多进程同时操作数据库而不会冲突

但是多线程并发插入的时候就不行了,因为多线程是共享数据的,而且在 Python 中并没有所谓的真正多线程,建议使用多进程

补充拓展:mysql中插入一条数据后得到插入后的主键id值

 ** 当我们涉及多表进行插入操作是,常常需要在程序中等到刚刚插入数据的主键Id,
便与进行多表关联 **

那么便需要在*Mapper.xml的insert方法前插入以下代码即可:

<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
 SELECT LAST_INSERT_ID() AS id
 </selectKey>

以上这篇Python3 操作 MySQL 插入一条数据并返回主键 id的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python守护进程(daemon)代码实例
Mar 06 Python
Python中类型关系和继承关系实例详解
May 25 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
用python实现的线程池实例代码
Jan 06 Python
python实现二维数组的对角线遍历
Mar 02 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
python中p-value的实现方式
Dec 16 Python
python实现局域网内实时通信代码
Dec 22 Python
Python-opencv 双线性插值实例
Jan 17 Python
详解Python中pyautogui库的最全使用方法
Apr 01 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
python 如何用map()函数创建多线程任务
Apr 07 Python
Python 调用有道翻译接口实现翻译
Mar 02 #Python
Python selenium抓取虎牙短视频代码实例
Mar 02 #Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 #Python
python mysql 字段与关键字冲突的解决方式
Mar 02 #Python
python3实现往mysql中插入datetime类型的数据
Mar 02 #Python
python3将变量写入SQL语句的实现方式
Mar 02 #Python
Python *args和**kwargs用法实例解析
Mar 02 #Python
You might like
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
python日志logging模块使用方法分析
2019/05/23 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
机械专业应届生求职信
2013/12/12 职场文书
生物科学专业自荐书
2014/06/20 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
幼儿园开学通知
2015/04/24 职场文书
阿甘正传观后感
2015/06/01 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server