删除SQLite DB表中的最后一个元素

时间:2016-06-27 19:50:46

标签: java android database sqlite

所以......这是我的代码:

public static final String DATABASE_NAME = "MY_DATABASE";
public static final String DATABASE_TABLE = "MY_TABLE";
public static final int DATABASE_VERSION = 1;
public static final String KEY_CONTENT = "Content";
public static final String KEY_ID = "_id";

private static final String SCRIPT_CREATE_DATABASE = "create table "
        + DATABASE_TABLE + " (" + KEY_ID
        + " integer primary key, " + KEY_CONTENT
        + " text not null);";
private SQLiteHelper sqLiteHelper;
private SQLiteDatabase sqLiteDatabase;
private Context context;

public SQLiteAdapter(Context c) { context = c; }

public int delete() {
    return sqLiteDatabase.delete(DATABASE_TABLE, KEY_ID  , null);
}

日志中没有错误消息。只有当我在手机中运行时才会中断。我使用了很多解决方案。它不想工作((( 任何人都可以告诉我,如何删除表格中的最后一个元素?

2 个答案:

答案 0 :(得分:2)

获取最后插入的元素,其中Select查询仅限于一个元素,并按ID DESC排序。

您还可以循环遍历所有元素并覆盖数据直到结束,但如果您的数据库有大量数据,则效率不高。

最后,您可以使用

SELECT last_insert_rowid()

在插入内容之后,将id保留为类范围变量。

https://www.sqlite.org/c3ref/last_insert_rowid.html

答案 1 :(得分:1)

SqliteDatabase.delete()方法的第二个参数是WHERE子句。你没有传递给delete()那个子句,没有说出要删除的内容。基本上你得到这个SQL查询:

DELETE FROM DATABASE_TABLE WHERE KEY_ID;

@Alexandre Martin给了你几个变种如何获得最后一个id。