SQLite 删除行使用 rowid 不工作

SQLite delete row using rowid not working

我创建了一个 sql 查询来删除给定 rowid 的行。当我 运行 查询时没有错误,但是,该行没有被删除。

String query = "DELETE FROM " + TABLE_NAME + " WHERE " + " rowid " + " = " + id;
db.execSQL(query);

试试这个:

String query = "DELETE FROM " + TABLE_NAME + " WHERE rowid " + " = '" + id + "'";
db.execSQL(query);

不过我个人更喜欢这样:

if (db.delete(TABLE_NAME, rowid+ " = ?", new String[]{id}) != 0) {
    Log.i("row", "Has been deleted");
} else{
    Log.i("row", "Has not been deleted");
}

解决方案:我使用 vacuum 函数重新生成了正确的 rowId。我之前删除了该 rowId 不存在的行。