我创建的数据库如下:
mDatabase.execSQL(FTS_TABLE_CREATE);
其中FTS_TABLE_CREATE
:
private static final String FTS_TABLE_CREATE =
"CREATE VIRTUAL TABLE " + FTS_VIRTUAL_TABLE +
" USING fts3 (" +
KEY_WORD + ", " +
KEY_DEFINITION + ");";
然后我添加一个新行:
public long addTitle(String word) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_WORD, "test");
initialValues.put(KEY_DEFINITION, "null");
return getWritableDatabase().insert(FTS_VIRTUAL_TABLE, null, initialValues);
}
现在我需要删除它:
public void removeTitle(String title) {
getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "=" + title, null);
}
但我有一个例外:
android.database.sqlite.SQLiteException:没有这样的列:test:,while 编译:DELETE FROM FTStitleslist WHERE suggest_text_1 = test
我做错了吗?
答案 0 :(得分:0)
改变这个:
getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "=" + title, null);
对此(推荐):
getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + " = ?", new String[]{title});
或者这个(不推荐):
getWritableDatabase().delete(FTS_VIRTUAL_TABLE, KEY_WORD + "= '" + title + "'", null);