删除查询不起作用(db.delete,db.exectSQL,db.rawQuery ....)

时间:2015-11-17 08:01:49

标签: android sql database sqlite android-database

我正在尝试删除Android中某些表格的行。我尝试直接运行SQL命令“execSQL”和“rawQuery”。现在我正在使用“db.delete”,我在其中插入参数“where”我要删除的行。

这是代码:

String where = DBTables.TActivities.ID + " NOT IN ( " +
                " SELECT " + DBTables.TInscripcionesActividades.ID_ACTIVIDAD + " FROM " +DBTables.TInscripcionesActividades.TABLE_NAME + " );";

db.beginTransaction();
db.delete(DBTables.TActivities.TABLE_NAME, where, null);
db.endTransaction();

我在BBDD浏览器中测试了sql请求,它运行正常。

我想删除表“TActividades”的所有记录,但ID在“TInscripcionesActividades”表中的活动除外。

任何想法?提前谢谢!

2 个答案:

答案 0 :(得分:3)

您需要在setTransactionSuccessful()之前致电endTransaction()以使更改生效。

答案 1 :(得分:2)

String where = DBTables.TActivities.ID + " NOT IN ( " +
                " SELECT " + DBTables.TInscripcionesActividades.ID_ACTIVIDAD + " FROM " +DBTables.TInscripcionesActividades.TABLE_NAME + " );";

db.beginTransaction();
db.delete(DBTables.TActivities.TABLE_NAME, where, null);
db.setTransactionSuccessful();
db.endTransaction();