前提
Python3
代码实现
#!/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 中并没有所谓的真正多线程,建议使用多进程。
除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接