我是安卓新手。
我想在TextView
. 所以,我只是想获取已存储在数据库中的最新 ID,并声明为Integer
我得到的值加 1,然后显示到TextView
.
我已经阅读了许多有关获取最新 ID 的问题。我该如何使用select last_insert_rowid();
?
谢谢!
last_insert_rowid()
仅适用于已在同一会话中插入的记录。
如果您的列被声明为INTEGER PRIMARY KEY
,那么如果您没有在新记录中指定一个值,SQLite 将自动为其生成一个值。
如果您在插入记录之前确实需要 ID,则可以执行以下操作:
SELECT max(_id) FROM MyTable
Cursor c = database.rawQuery("SELECT last_insert_rowid()", null);
c.moveToFirst();
int id = c.getInt(0);
id += 1;
我也是新手,不能很好的解释。以上将从同一会话中获取最后一个插入 id。如果启动新会话,它将不起作用,即您插入某些内容并关闭连接并重新打开它,因为它将返回 0,因此您需要记住这一点,因为您的 TextView 将始终显示 1。就像你我读了很多关于它的问题,但不知道如何实现它。上面的代码是我如何设法使用它而不会出现越界异常。
如果您使用自动增量使用
SELECT * from SQLITE_SEQUENCE;
获取最新的 id。