Answers:
使用cursor.lastrowid
得到插入光标对象的最后一行ID,或者connection.insert_id()
从该连接上最后插入获取的ID。
insert_id
返回?
lastrowid
只可被提交当前事务后?
另外,cursor.lastrowid
(MySQLdb支持的dbapi / PEP249扩展名):
>>> import MySQLdb
>>> connection = MySQLdb.connect(user='root')
>>> cursor = connection.cursor()
>>> cursor.execute('INSERT INTO sometable VALUES (...)')
1L
>>> connection.insert_id()
3L
>>> cursor.lastrowid
3L
>>> cursor.execute('SELECT last_insert_id()')
1L
>>> cursor.fetchone()
(3L,)
>>> cursor.execute('select @@identity')
1L
>>> cursor.fetchone()
(3L,)
cursor.lastrowid
connection.insert_id()
比另一次MySQL往返便宜,而且便宜很多。
cursor.lastrowid
比connection.insert_id()
呢?
cursor.lastrowid
返回的内容不同于connection.insert_id()
。cursor.lastrowid
返回最后一个插入ID,connection.insert_id()
返回0
。怎么可能?