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单线程实现多个定时器示例
Mar 30 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 Python
Python基础学习之函数方法实例详解
Jun 18 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
Python利用zhdate模块实现农历日期处理
Mar 31 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
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
PHP实现简单的计算器
2020/08/28 PHP
js加解密 脚本解密
2008/02/22 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
Javascript中parseInt的正确使用方式
2018/10/17 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
python中xrange和range的区别
2014/05/13 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
python负载均衡的简单实现方法
2018/02/04 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
python 装饰器重要在哪
2021/02/14 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书