从sqlite数据库Android获取最后插入的值

kak*_*a47 24 sqlite android lastinsertid

我试图从Android中的sqlite数据库中获取最后一个插入的rowid.我已经阅读了很多关于它的帖子,但是无法让它工作.这是我的方法:

 public Cursor getLastId() {
        return mDb.query(DATABASE_TABLE, new String[] {KEY_WID}, KEY_WID + "=" + MAX(_id), null, null, null, null, null);}
Run Code Online (Sandbox Code Playgroud)

我试过MAX,但我一定是错了.还有另外一种方法吗?

Gor*_*ski 64

实际上,SQLiteDatabase类有自己的insert方法,它返回新创建的行的id.我认为这是获取新ID的最佳方式.您可以在此处查看其文档.

我希望这有帮助.


Die*_*ano 26

使用

 SELECT last_insert_rowid();
Run Code Online (Sandbox Code Playgroud)

获取最后插入的rowid.如果您正在使用AUTOINCREMENT关键字

SELECT * from SQLITE_SEQUENCE;
Run Code Online (Sandbox Code Playgroud)

会告诉你每张桌子的价值.

  • 你可以用Android SQLiteDatabase做一个rawQuery,并输入字符串"Select*from SQLITE_SEQUENCE" (3认同)

Hfo*_*ham 14

从表中获取最后一行..

Cursor cursor = theDatabase.query(DATABASE_TABLE, columns,null, null, null, null, null);
cursor.moveToLast();
Run Code Online (Sandbox Code Playgroud)