1

在我正在构建的应用程序中,我有一个自动增量行,所以说我在 android 的 sql 数据库中添加了 3 个条目,它是 0,1,2 但是说我从数据库中删除了 3 个条目,然后添加另一个它将继续自动从放在数据库中的最后一个自动增量号中增加号,所以如果我删除数据库中的所有条目,如果当时数据库中还剩下诺丁,我如何获得最后一个自动增量号?

更新

当尝试使用“SELECT last_insert_rowid()”时,我得到了一堆垃圾:

在数据库文件中我有:

 public Cursor getmax(){
        return databaseConnect.rawQuery("SELECT last_insert_rowid()", null);
    }

并且在文件中我试图返回最后一行:

  Cursor reminder = databaseHelper.getmax();
 String title = reminder + "";

我需要像上面那样转换成字符串,但是当我检查它时,我得到了一堆垃圾?

4

4 回答 4

0

两种选择:

- 为插入创建一个数据库触发器,以便插入操作返回它刚刚插入的行的 ID。将该值存储在某个地方,例如共享偏好。

- 自动递增索引不应该仅仅因为数据库为空而重新开始。如果你想要最后一行的索引,只需插入一行,检查它的索引,然后减去一个。然后删除空行(相应地更新您的“最后插入的索引”)

于 2012-04-07T00:46:07.233 回答
0

尝试...

String maxValue = "0";
Cursor c = db.rawQuery("SELECT seq FROM sqlite_sequence WHERE sqlite_sequence.name = 'MY_TABLE'", null);
if (c != null && c.moveToFirst())
    maxValue = String.valueOf(c.getInt(c.getColumnIndex("seq")));
于 2012-04-07T00:09:58.537 回答
0

您始终可以获取一列的最大值并向其添加一个

于 2012-04-06T23:58:59.913 回答
0

如果它是 android 我猜它是 SQLLite,你应该可以使用

SELECT last_insert_rowid()
于 2012-04-06T23:56:11.263 回答