代码之家  ›  专栏  ›  技术社区  ›  Basti

sqliteDatabase删除表(如果存在)不起作用

  •  -1
  • Basti  · 技术社区  · 6 年前

    情况
    我需要删除数据库中特定表的所有条目,这样我就可以删除它了。

    DROP TABLE IF EXISTS LogEntry
    

    我尝试使用 SQLiteDatabase#execSql(String) SQLiteDatabase#rawQuery(String, String[]) . 我在执行事务之前启动它,在使用 SQLiteDatabase#beginTransaction() SQLiteDatabase#endTransaction() .

    问题
    在这两种情况下,SQL执行时没有引发异常,但表仍然存在。我在放置之后运行了一个select语句,以查看它是否有效,它的结果是否与放置之前的结果相同。

    1 回复  |  直到 6 年前
        1
  •  1
  •   MikeT    6 年前

    我相信,助理是 . 是的,原因是你忽略了 设置事务成功 ,没有这个 期末交易 将回滚(撤消事务中的所有操作)。

    按:

    事务可以嵌套。当外部事务结束时 在该事务和所有嵌套事务中完成的工作 将提交或回滚。 如果 任何事务在未标记为干净的情况下结束(通过调用 设置事务成功) . 否则他们将被承诺。

    beginTransaction