0

我创建了一个数据库,如下所示:

  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:,编译时:DELETE FROM FTStitleslist WHERESuggest_text_1=test

难道我做错了什么?

4

1 回答 1

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);
于 2012-09-11T15:39:58.980 回答