java - 如何在一个查询中删除多个表?
问题描述
我需要使用相同的 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})
但我不能删除它们。那么,我该怎么做呢?
解决方案
正如所评论的 - 您不能在单个语句中从两个表中删除,特别是当它在 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;
}
推荐阅读
- python - 如何使用 qyery 返回无在 Django 列表视图上获取外键的名称
- python - 正则表达式匹配一个字符串及其周围的 2 个字符
- html - 如何为最近的祖先提供 XPath?
- ios - Ionic IOS 谷歌登录移动“location.protocol”科尔多瓦
- javascript - Formik - 如何清除字段并显示自定义错误
- python - 如何在 python 3.8 中永久保存用户输入的数据?
- python - 如何使用 Telethon,python 仅接收来自电报频道的新消息
- django - pdfkit:包含水印的标题不重复
- c - 为什么 for 循环中的 printf 有人可以解释我吗?
- c# - 以编程方式设置 ListBox 以滚动到所选项目