我是Android的新手。
我想在TextView
中显示新ID。
所以,我只想到获取已存储在数据库中的最新ID,并声明为Integer
将值加1,然后显示给TextView
。
我已经阅读了很多关于获取最新ID的问题。我如何使用select last_insert_rowid();
?
谢谢!
答案 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异常。