首页 > 解决方案 > 如何在一个查询中删除多个表?

问题描述

我需要使用相同的 id 删除两个表。到目前为止,我正在使用这种方法:

public Integer deleteSplitMondayByID (String ID){
        SQLiteDatabase database = this.getWritableDatabase();
        return database.delete(TABLE_NAME, "ID = ?", new String[]{ID});
    }

我怎样才能再添加一张桌子?我已经尝试过类似的东西

(TABLE_NAME, TABLE_NAME2 "ID = ?", new String[]{ID})
(TABLE_NAME + " , " + TABLE_NAME2 "ID = ?", new String[]{ID})
(TABLE_NAME + " UNION " + TABLE_NAME2 "ID = ?", new String[]{ID})

但我不能删除它们。那么,我该怎么做呢?

标签: javaandroidsqlsqlite

解决方案


正如所评论的 - 您不能在单个语句中从两个表中删除,特别是当它在 Java 库中被抽象时。尝试这样的事情:

public Integer deleteSplitMondayByID (String ID){
  int delcount = 0;
  SQLiteDatabase database = this.getWritableDatabase();
  database.beginTransaction();
  try 
    {
      delcount += database.delete(TABLE_NAME, "ID = ?", new String[]{ID});
      delcount += database.delete(TABLE_NAME2, "ID = ?", new String[]{ID});
      database.setTransactionSuccessful();
    } finally {         
      database.endTransaction();
    }
  return delcount;
}

推荐阅读