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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python中time模块与datetime模块在使用中的不同之处
Nov 24 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
django缓存配置的几种方法详解
Jul 16 Python
python下载微信公众号相关文章
Feb 26 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
解决python 读取 log日志的编码问题
Dec 24 Python
Python matplotlib画曲线例题解析
Feb 07 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
python实现全排列代码(回溯、深度优先搜索)
Feb 26 Python
Python logging模块原理解析及应用
Aug 13 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
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php 类自动载入的方法
2015/06/03 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
python实现每次处理一个字符的三种方法
2014/10/09 Python
python实现给数组按片赋值的方法
2015/07/28 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
解决Python中回文数和质数的问题
2019/11/24 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
中学生运动会口号
2014/06/07 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
培训通知
2015/04/17 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers