小编典典

Android SQLite删除表未实际删除行

sql

嗨,我正在尝试通过下面的查询删除表中的所有行

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

我正在表中删除n行。但是表中仍然存在行。我的删除通话有什么问题吗?


阅读 222

收藏
2021-04-14

共1个答案

小编典典

您需要先调用setTransactionSuccessful以将对数据库所做的所有更改提交给数据库,然后再调用endTransaction

db.beginTransaction();
int deleted = db.delete("user", null, null);
db.setTransactionSuccessful();
db.endTransaction();

来源(Android开发人员参考):

如果任何事务未标记为干净而结束(通过调用setTransactionSuccessful),则更改将回滚。否则,他们将被提交。

2021-04-14