python 插入mysql获取自增id

Python 投稿 69600 0 评论

python 插入mysql获取自增id

有时候在insert之后需要获取该表的自增id

# coding=utf-8
import traceback

import pymysql
 

sql = "INSERT INTO table_name(`name`, `age`) values(%s, %s)"
value_list = [
    ("rose", 18),
    ("lila", 19),
    ("john", 20),
]
 


def insert_get_id():
 conn=pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user="hhh",
    password="pwd",
    database="test"
)

mysql_cursor = conn.cursor()
    """
    插入数据并获取其自增 ID:支持批量插入多条
    :return: {"1": 1, "2": 2, "3": 3}
    """

    info = {}
    for index, value in enumerate(value_list, 1):
        try:
            mysql_cursor.execute(sql, value)
            # 方法一
            insert_id = conn.insert_id()

            # 将 insert_id 放在 info 中
            info[str(index)] = insert_id

            # # 方法二
            # cursor.execute("select last_insert_id();")
            # insert_id_info = mysql_cursor.fetchall()
		
            # 获取 ID 必须在 commit 之前,否则获取为 0
            db.commit()
        finally:
            mysql_cursor.close()
            conn.close()

    return info


if __name__ == '__main__':
    insert_and_get_id()

编程笔记 » python 插入mysql获取自增id

赞同 (123) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽