user3522371
user3522371

Reputation:

How to read the last record in SQLite table?

Is there a way to read the value of the last record inserted in an SQLite table without going through the previous records ?

I ask this question for performance reasons.

Upvotes: 4

Views: 10589

Answers (2)

ravenspoint
ravenspoint

Reputation: 20472

There is a function named sqlite3_last_insert_rowid() which will return the integer key for the most recent insert operation. http://www.sqlite.org/c3ref/last_insert_rowid.html

This only helps if you know the last insert happened on the table you care about.

If you need the last row on a table, regardless of wehter the last insert was on this table or not, you will have to use a SQL query

SELECT * FROM mytable WHERE ROWID IN ( SELECT max( ROWID ) FROM mytable );

Upvotes: 6

CL.
CL.

Reputation: 180060

When you sort the records by ID, in reverse order, the last record will be returned first. (Because of the implicit index on the autoincrementing column, this is efficient.)

If you aren't interested in any other records, use LIMIT:

SELECT *
FROM MyTable
ORDER BY _id DESC
LIMIT 1

Upvotes: 3

Related Questions