我正在尝试删除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”表中的活动除外。
任何想法?提前谢谢!
答案 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();