从虚拟数据库中删除行

时间:2012-09-11 15:24:11

标签: android

我创建的数据库如下:

  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

我做错了吗?

1 个答案:

答案 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);