在SQLite表中获取新添加的行

时间:2013-06-14 14:04:21

标签: android sql sqlite

在我的Android应用程序中,我有一个SQLite数据库,其中包含一个带有AUTOINCREMENT的id列的表。我正在使用INSERT语句添加新行,但我需要立即访问此行,以便我可以通过ID引用它。那么有没有人知道如何获得这个新添加的行的ID?

谢谢!

4 个答案:

答案 0 :(得分:5)

SQLiteDatabase.insert返回新创建的行的ID。

所以,你会得到这样的行:

long row = mDatabase.insert(MY_TABLE,  "id", values);

(当然上面只是一个例子)

见这里:SQliteDatabase.insert

  

<强>返回

     

新插入行的行ID,如果发生错误,则返回-1

答案 1 :(得分:1)

我认为您可以使用last_insert_rowid()功能

来自文档

  

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

答案 2 :(得分:0)

试试这个:

select id from myTable where id = (select max(id) from myTable);

答案 3 :(得分:0)

当你插入一行时,返回的long值是插入行的id:见

public long insert (String table, String nullColumnHack, ContentValues values)

复制过去的链接:

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#insert(java.lang.String,java.lang.String,android.content.ContentValues)