如果数据库为空,如何获取自动增量编号?

时间:2012-04-06 23:52:59

标签: android sqlite

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

更新

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

在数据库文件中我有:

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

并在文件中我试图获取最后一行,如果回来:

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

我需要像上面那样隐藏字符串,但是当我检查它时,我会得到一堆垃圾回来?

4 个答案:

答案 0 :(得分:0)

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

SELECT last_insert_rowid()

答案 1 :(得分:0)

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

答案 2 :(得分: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")));

答案 3 :(得分:0)

两个选项:

-Createa Database trigger用于插入,这样插入操作返回它刚刚插入的行的ID。将该值存储在共享首选项的某个位置。

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