Python3 操作 MySQL 插入一條數(shù)據(jù)并返回主鍵 id的實例
Python 中貌似并沒有直接返回插入數(shù)據(jù) id 的操作(反正我是沒找到),但是我們可以變通一下,找到最新插入的數(shù)據(jù)
#!/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() 之前
由于數(shù)據(jù)庫的安全機制決定,其中一個進(jìn)程執(zhí)行完成一條語句時,此時只有這個進(jìn)程能看到數(shù)據(jù)。如果想要其他的進(jìn)程也能看到數(shù)據(jù),就需要使用 conn.commit() 提交,這樣就保證了多進(jìn)程同時操作數(shù)據(jù)庫而不會沖突
但是多線程并發(fā)插入的時候就不行了,因為多線程是共享數(shù)據(jù)的,而且在 Python 中并沒有所謂的真正多線程,建議使用多進(jìn)程
補充拓展:mysql中插入一條數(shù)據(jù)后得到插入后的主鍵id值
** 當(dāng)我們涉及多表進(jìn)行插入操作是,常常需要在程序中等到剛剛插入數(shù)據(jù)的主鍵Id,
便與進(jìn)行多表關(guān)聯(lián) **
那么便需要在*Mapper.xml的insert方法前插入以下代碼即可:
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() AS id </selectKey>
以上這篇Python3 操作 MySQL 插入一條數(shù)據(jù)并返回主鍵 id的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
PyCharm Anaconda配置PyQt5開發(fā)環(huán)境及創(chuàng)建項目的教程詳解
這篇文章主要介紹了PyCharm Anaconda配置PyQt5開發(fā)環(huán)境及創(chuàng)建項目的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
Python利用BeautifulSoup解析Html的方法示例
BeautifulSoup是python的一個庫,最主要的功能是從網(wǎng)頁抓取數(shù)據(jù)。下面這篇文章主要給大家介紹了關(guān)于Python利用BeautifulSoup解析Html的方法示例,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
PyQt中使用QtSql連接MySql數(shù)據(jù)庫的方法
這篇文章主要介紹了PyQt中使用QtSql連接MySql數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Python讀取文件內(nèi)容為字符串的方法(多種方法詳解)
這篇文章主要介紹了Python讀取文件內(nèi)容為字符串的方法,本文通過三種方式給大家介紹,在文章末尾給大家提到了python讀取txt文件中字符串,字符串用空格分隔的相關(guān)知識,需要的朋友可以參考下2020-03-03
Python基于pycrypto實現(xiàn)的AES加密和解密算法示例
這篇文章主要介紹了Python基于pycrypto實現(xiàn)的AES加密和解密算法,結(jié)合實例形式分析了Python使用pycrypto模塊進(jìn)行AES加密與解密操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-04-04

