Python3 操作 MySQL 插入一條數據并返回主鍵 id的實例
Python 中貌似并沒有直接返回插入數據 id 的操作(反正我是沒找到),但是我們可以變通一下,找到最新插入的數據
#!/usr/bin/env python3# -*- coding: UTF-8 -*- import pymysql db = pymysql.connect(**db_conf)cursor = db.cursor()cursor.execute(sql)# 最后插入行的主鍵idprint(cursor.lastrowid)# 最新插入行的主鍵idprint(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的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
1. Android打包篇:Android Studio將代碼打包成jar包教程2. JavaEE SpringMyBatis是什么? 它和Hibernate的區別及如何配置MyBatis3. SpringBoot+TestNG單元測試的實現4. Springboot 全局日期格式化處理的實現5. vue實現web在線聊天功能6. 解決Android Studio 格式化 Format代碼快捷鍵問題7. 完美解決vue 中多個echarts圖表自適應的問題8. JavaScript實現頁面動態驗證碼的實現示例9. Python使用urlretrieve實現直接遠程下載圖片的示例代碼10. Java使用Tesseract-Ocr識別數字
