4

我是安卓新手。

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

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

谢谢!

4

3 回答 3

4

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

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

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

SELECT max(_id) FROM MyTable
于 2012-11-30T22:13:43.613 回答
3
Cursor c = database.rawQuery("SELECT last_insert_rowid()", null);
c.moveToFirst();
int id = c.getInt(0);
id += 1;

我也是新手,不能很好的解释。以上将从同一会话中获取最后一个插入 id。如果启动新会话,它将不起作用,即您插入某些内容并关闭连接并重新打开它,因为它将返回 0,因此您需要记住这一点,因为您的 TextView 将始终显示 1。就像你我读了很多关于它的问题,但不知道如何实现它。上面的代码是我如何设法使用它而不会出现越界异常。

于 2014-01-31T22:53:33.587 回答
3

如果您使用自动增量使用

SELECT * from SQLITE_SEQUENCE;

获取最新的 id。

于 2012-11-30T15:31:23.027 回答