如何从表中获取最后一个rowid

时间:2019-06-26 12:11:08

标签: android android-sqlite

光标每次为-1

在我拥有

之前

db.getWritableDatabase

TABLE_NAME_NOTES在每三个位置都有注释

public String addNote(){
    String id = "";

    ContentValues values = new ContentValues();
    values.put("Date","date");
    db.insert(TABLE_NAME_NOTES, null, values);

    Cursor cursor = db.rawQuery("select last_insert_rowid() as fullname from " + TABLE_NAME_NOTES, null);
    if (cursor.moveToFirst()){
        do {
            id = cursor.getString(0);
        } while(cursor.moveToNext());
    }
    cursor.close();

    cursor = db.rawQuery("SELECT _id FROM " + TABLE_NAME_NOTES, null);
    if(cursor.moveToLast()){
        long long_id = cursor.getInt(0);/
        id = Long.toString(long_id);
    }
    cursor.close();
    return id;
}

我如何获得最后一个ID?

1 个答案:

答案 0 :(得分:0)

首先从设备/仿真器中卸载应用,然后重新运行。
这对于删除和重新创建数据库是必需的,因此您定义的任何新列都将存在于表中。
每次在代码中定义新列时,表中不会自动创建该列。
方法insert()返回插入行的rowid;如果插入不成功,则返回-1。

long lastInsertedId = db.insert(TABLE_NAME_NOTES, null, values);