情况
我需要删除数据库中特定表的所有条目,所以我想我会删除它。
DROP TABLE IF EXISTS LogEntry
我尝试使用SQLiteDatabase#execSql(String)
和SQLiteDatabase#rawQuery(String, String[])
运行sql。我在执行之前先开始交易,然后在使用SQLiteDatabase#beginTransaction()
和SQLiteDatabase#endTransaction()
执行之后结束交易。
问题
在这两种情况下,SQL都执行而没有引发异常,但是表仍然存在。我在放置之后立即运行SELECT语句,以查看它是否有效,并且结果与放置之前相同。
答案 0 :(得分:1)
我相信,assuimg#是。,原因是您省略了 setTransactionSuccessful ,如果没有此 endTransaction ,回滚(撤消在事务中完成的所有操作)。
按照:-
事务可以嵌套。当外部交易结束时,所有 在该事务和所有嵌套事务中完成的工作 将被提交或回滚。 如果 任何交易都将结束而不会被标记为干净(通过调用 setTransactionSuccessful)。否则它们将被提交。