The last_insert_rowid() function returns the
integer ROWID value (or
ROWID alias) of the
last successfully completed row INSERT. The purpose of this function is to
discover an automatically generated ROWID, often for the purpose of inserting a
foreign key that references that ROWID. For the purposes of this function, an
INSERT is considered to
successfully complete even if it happens inside an uncommitted
transaction.
The returned value is tracked by the
database connection, not the database itself. This avoids any
possible race conditions between INSERT operations done from different database
connections. It means, however, that the
returned value is updated by an INSERT to any table of any attached database in
the database connection. If no INSERT operations have completed with this
database connection, the value 0 is returned.
This SQL function is a wrapper around
the C function sqlite3_last_insert_rowid(), and has all of the
same limitations and conditions.