小编big*_*rse的帖子

在mysqldb中执行executemany后,是否可以获取所有的lastrowids?

我不能确定生成的ID是否是连续的,如果没有,是否还有其他方法可以获得它们?

class BaseDao(object):

    def __init__(self,pooldb):
        self.pooldb = pooldb

    def insertmany(self,sql,args):
        conn,cur = None,None
        try:
            conn = pooldb.dedicated_connection()
            cur = conn.cursor()
            num=cur.executemany(sql,args)
            if num <= 0:
                raise Exception("insert failure with num equals zero")
            lastrowid = int(cur.lastrowid)
            return [range(lastrowid - num + 1,lastrowid+1)]
        except:
            conn.rollback()
            traceback.print_exc()
            raise Exception("error happened when insert sql=%s args=%s " % (sql,str(args)))
        finally:
            if cur:
                cur.close()
            if conn:
                conn.close() 
Run Code Online (Sandbox Code Playgroud)

python mysql-python executemany

11
推荐指数
1
解决办法
2539
查看次数

标签 统计

executemany ×1

mysql-python ×1

python ×1