4

In my android application, I have a SQLite database containing a table with an id column with AUTOINCREMENT. I'm using an INSERT statement to add a new row but I need to immediately access this row so I can refer to it by the ID. So does anyone know of a way to get the ID of this newly added row?

Thanks!

4

4 回答 4

6

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

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

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

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

见这里:SQliteDatabase.insert

退货

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

于 2013-06-14T14:06:58.643 回答
1

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

从文档

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

于 2013-06-14T14:07:06.973 回答
0

试试这个:

select id from myTable where id = (select max(id) from myTable);
于 2013-06-14T14:08:08.703 回答
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)

于 2013-06-14T14:09:23.107 回答