Android - 如何使用“select last_insert_rowid();”

时间:2012-11-30 15:28:47

标签: android sqlite

我是Android的新手。

我想在TextView中显示新ID。 所以,我只想到获取已存储在数据库中的最新ID,并声明为Integer将值加1,然后显示给TextView

我已经阅读了很多关于获取最新ID的问题。我如何使用select last_insert_rowid();

谢谢!

3 个答案:

答案 0 :(得分:4)

last_insert_rowid()仅适用于已插入同一会话的记录。

如果您的列声明为INTEGER PRIMARY KEY,那么如果您未在新记录中指定一个列,SQLite将自动为其生成值。

如果在插入记录之前确实需要ID,可以执行以下操作:

SELECT max(_id) FROM MyTable

答案 1 :(得分:3)

如果使用自动增量使用

SELECT * from SQLITE_SEQUENCE;

获取最新ID。

答案 2 :(得分:3)

Cursor c = database.rawQuery("SELECT last_insert_rowid()", null);
c.moveToFirst();
int id = c.getInt(0);
id += 1;

我也是新手,所以不能很好地解释。以上将从同一会话中获取最后一个插入ID。如果一个新的会话开始,它将无法工作,即你插入一些东西并关闭连接并重新打开它,因为它将返回0,所以你需要记住这一点,因为你的TextView将始终显示1.如同你在不知道如何实现它的情况下阅读了很多关于它的问题。上面的代码是我如何设法使用它而不会出现outofbounds异常。