-1

我正在开发一个 android 项目,我必须删除表中的所有记录:

 public void deleteAll(){
    SQLiteDatabase db=this.getWritableDatabase();
    String req="delete * from "+ TABLE_ENIGME;
    db.execSQL(req);
}

但是当我调用我的函数deleteAll时,这个异常被陶醉了:

 android.database.sqlite.SQLiteException: near "*": syntax error: delete * from enigme2

那么为什么“*”是不恰当的呢?

4

3 回答 3

6

请查看http://www.sqlite.org/lang_delete.html。删除不接受通配符。采用

Delete From <table name>

反而

于 2012-08-01T13:20:37.003 回答
4

主要是因为那不是有效的 sql 语法。只需省略星号并执行

delete from enigme2;
于 2012-08-01T13:20:22.847 回答
2

这是不合适的,因为它不是有效的 SQL 语法。*用于表示“所有列”(选择时)。由于 DELETE 语句正在删除整行,因此声明“所有列”是没有意义的,因为默认情况下它会从该行的所有列中删除值。

于 2012-08-01T13:20:54.860 回答