我不断收到此错误。我确信这是一个简单的语法错误。有人看到吗?我调试了大约 30 分钟,似乎找不到它。
query
DELETE FROM SuccessfulCalls ORDER BY id DESC LIMIT 2
要插入到数据库的实际代码。
SQLiteHelper sqLiteHelper = ApplicationClass.getSqLiteHelper();
SQLiteDatabase db = sqLiteHelper.getWritableDatabase();
String query = "DELETE FROM " + sqLiteHelper.SUCCESSFULCALLSTABLE + " ORDER BY " + sqLiteHelper.SUCCESSFULID + " DESC LIMIT " + Constants.NUMBEROFCALLSTODELETE ;
db.rawQuery(query, null);
db.close();
UPDATE我已经尝试过这个查询,但由于某种原因它不会从我的数据库中删除行。
DELETE FROM SuccessfulCalls WHERE id IN ( SELECT id FROM SuccessfulCalls ORDER BY id DESC LIMIT 5 );
但我知道查询正在执行,因为当我尝试时。它删除了我的整个表。从成功的呼叫中删除
UPDATE我的主键设置错误。对于 sqlite 自动递增主键,它们需要 INTEGER PRIMARY KEY 而不是 int PRIMARY KEY
ORDER BY
and LIMIT
语法上不允许使用DELETE
查询除非sqlite 是用SQLITE_ENABLE_UPDATE_DELETE_LIMIT http://www.sqlite.org/lang_delete.htmlAndroid 上则不然。
如果要删除最高的两个id
行,使用
DELETE FROM SuccessfullCalls WHERE id IN (SELECT id FROM SuccessfulCalls ORDER BY id DESC LIMIT 2);
Use execSQL()
对于此类查询而不是rawQuery()
让 SQL 实际运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)