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插入排序算法实例分析
Jul 03 Python
python3.x上post发送json数据
Mar 04 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
微信公众号token验证失败解决方案
Jul 22 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
Python中顺序表原理与实现方法详解
Dec 03 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
python程序如何进行保存
Jul 03 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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
极典R601SW收音机
2021/03/02 无线电
php实现用已经过去多长时间的方式显示时间
2015/06/05 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
面包屑导航详解
2017/12/07 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
简单了解Python中的几种函数
2017/11/03 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
Python如何发送与接收大型数组
2020/08/07 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
音乐之声音乐广播稿
2014/09/10 职场文书
毕业横幅标语
2014/10/08 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers