如何使用Python3在MySQL中插入数据并获取返回的主键ID?

2026-05-29 02:581阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计612个文字,预计阅读时间需要3分钟。

如何使用Python3在MySQL中插入数据并获取返回的主键ID?

在Python中,虽然标准库中没有直接返回并插入数据的操作,但我们可以通过组合不同的库和方法来实现这一功能。以下是一个简化的示例,展示如何查找并插入最新数据:

pythonimport sqlite3

假设有一个SQLite数据库conn=sqlite3.connect('example.db')cursor=conn.cursor()

创建一个表(如果尚未存在)cursor.execute('''CREATE TABLE IF NOT EXISTS data ( id INTEGER PRIMARY KEY, data TEXT)''')

插入一些示例数据cursor.execute(INSERT INTO data (data) VALUES ('data1'))cursor.execute(INSERT INTO data (data) VALUES ('data2'))cursor.execute(INSERT INTO data (data) VALUES ('data3'))

提交事务conn.commit()

如何使用Python3在MySQL中插入数据并获取返回的主键ID?

查找最新插入的数据cursor.execute(SELECT data FROM data ORDER BY id DESC LIMIT 1)

获取结果latest_data=cursor.fetchone()[0]

输出结果print(f最新插入的数据是:{latest_data})

关闭连接conn.close()

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的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

本文共计612个文字,预计阅读时间需要3分钟。

如何使用Python3在MySQL中插入数据并获取返回的主键ID?

在Python中,虽然标准库中没有直接返回并插入数据的操作,但我们可以通过组合不同的库和方法来实现这一功能。以下是一个简化的示例,展示如何查找并插入最新数据:

pythonimport sqlite3

假设有一个SQLite数据库conn=sqlite3.connect('example.db')cursor=conn.cursor()

创建一个表(如果尚未存在)cursor.execute('''CREATE TABLE IF NOT EXISTS data ( id INTEGER PRIMARY KEY, data TEXT)''')

插入一些示例数据cursor.execute(INSERT INTO data (data) VALUES ('data1'))cursor.execute(INSERT INTO data (data) VALUES ('data2'))cursor.execute(INSERT INTO data (data) VALUES ('data3'))

提交事务conn.commit()

如何使用Python3在MySQL中插入数据并获取返回的主键ID?

查找最新插入的数据cursor.execute(SELECT data FROM data ORDER BY id DESC LIMIT 1)

获取结果latest_data=cursor.fetchone()[0]

输出结果print(f最新插入的数据是:{latest_data})

关闭连接conn.close()

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的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。