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 相关文章推荐
21行Python代码实现拼写检查器
Jan 25 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
python简易远程控制单线程版
Jun 20 Python
python 将对象设置为可迭代的两种实现方法
Jan 21 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
Python for循环搭配else常见问题解决
Feb 11 Python
在python中修改.properties文件的操作
Apr 08 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
利用python 下载bilibili视频
Nov 13 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 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
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
PHP反射学习入门示例
2019/06/14 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
python使用any判断一个对象是否为空的方法
2014/11/19 Python
python生成n个元素的全组合方法
2018/11/13 Python
python中partial()基础用法说明
2018/12/30 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
virtualenv介绍及简明教程
2020/06/23 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
承诺书样本
2014/08/30 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
创业计划书之废品回收
2019/09/26 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
Nginx 常用配置
2022/05/15 Servers
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis