SQLiteDatabase DROP TABLE IF EXISTS不起作用

时间:2018-11-21 10:15:50

标签: android database sqlite

情况
我需要删除数据库中特定表的所有条目,所以我想我会删除它。

DROP TABLE IF EXISTS LogEntry

我尝试使用SQLiteDatabase#execSql(String)SQLiteDatabase#rawQuery(String, String[])运行sql。我在执行之前先开始交易,然后在使用SQLiteDatabase#beginTransaction()SQLiteDatabase#endTransaction()执行之后结束交易。

问题
在这两种情况下,SQL都执行而没有引发异常,但是表仍然存在。我在放置之后立即运行SELECT语句,以查看它是否有效,并且结果与放置之前相同。

1 个答案:

答案 0 :(得分:1)

我相信,assuimg#是,原因是您省略了 setTransactionSuccessful ,如果没有此 endTransaction ,回滚(撤消在事务中完成的所有操作)。

按照:-

  

事务可以嵌套。当外部交易结束时,所有   在该事务和所有嵌套事务中完成的工作   将被提交或回滚。 如果   任何交易都将结束而不会被标记为干净(通过调用   setTransactionSuccessful)。否则它们将被提交。

beginTransaction