2010-06-09 144 views

回答

10

Cursor.lastrowid

>>> import sqlite3 
>>> conn = sqlite3.connect(":memory:") 
>>> c = conn.cursor() 
>>> c.execute("create table t (id integer, some text);") 
<sqlite3.Cursor object at 0x00C64CE0> 
>>> c.execute("insert into t values(1,'a');") 
<sqlite3.Cursor object at 0x00C64CE0> 
>>> c.lastrowid 
1 
+0

谢谢!这个例子完美地满足了我所需要的。我没有尝试其他答案,但假设它也能起作用。 – javovo 2010-06-10 14:33:14

+0

如果您在调用commit()之前在一个游标实例内进行了许多更改,请小心使用此方法。你可能无法获得你想要的值。 – onetwopunch 2013-08-29 18:15:19

6
SELECT last_insert_rowid() -- same as select @@identity 

last_insert_rowid()的last_insert_rowid()函数返回从该调用的函数的数据库连接的最后一行插入件的ROWID。 last_insert_rowid()SQL函数是sqlite3_last_insert_rowid()C/C++接口函数的封装。