Android SQLite删除表实际上没有删除行

use*_*469 1 mysql sql sqlite android ios

嗨我想通过下面的查询删除表中的所有行

db.beginTransaction(); // db is a SQLiteDatabase object
int deleted = db.delete("user", null, null);
db.endTransaction();
Run Code Online (Sandbox Code Playgroud)

我在表中删除了n行.但表中仍然存在行.我的删除电话有什么问题吗?

小智 6

在调用之前setTransactionSuccessful,您需要调用以提交对数据库所做的所有更改endTransaction:

db.beginTransaction();
int deleted = db.delete("user", null, null);
db.setTransactionSuccessful();
db.endTransaction();
Run Code Online (Sandbox Code Playgroud)

来源(Android开发者参考):

如果任何事务结束而没有标记为干净(通过调用setTransactionSuccessful),则将回滚更改.否则他们将被承诺.