Android的SQLite删除表,实际上并没有删除行
嗨,我想通过下面的查询删除表中的所有行
db.beginTransaction(); // db is a SQLiteDatabase object int deleted = db.delete("user", null, null); db.endTransaction();
我得到n表中删除的行数。 但是表中仍然存在行。 我的删除电话中有任何错误?
在调用endTransaction
之前,您需要调用setTransactionSuccessful
来提交对数据库所做的所有更改:
db.beginTransaction(); int deleted = db.delete("user", null, null); db.setTransactionSuccessful(); db.endTransaction();
来源(Android开发人员参考):
如果任何事务没有被标记为干净(通过调用setTransactionSuccessful),则更改将被回滚。 否则,他们将承诺。
试试这个
public int delete(String tableName) { SQLiteDatabase db = this.getWritableDatabase(); int x = db.delete(tableName, null, null); db.close(); return x; }
尝试一下 :
db.execSQL("DROP TABLE IF EXISTS table_name");
其中db是对SqliteDatabase对象的引用。
当我们安装应用程序时,数据库文件将在/ data文件夹中重新创build。 即使在删除文件后,由于数据库的重新创build,该问题可能会发生。
检查是否是这种情况。
String query="delete from "+tablename; SQLiteDatabase db=getWritableDatabase(); db.execSQL(query); Log.d("msg","deleted");
- PhoneGap / Apache Cordova提出了一个用于encryptionSQLite数据库的API
- Phonegap 3.5.0 Cordova File API错误:无法读取未定义的属性'dataDirectory'
- 通过在触摸设备上拖放来启用滚动
- 云function意外令牌 – 在apns-collapse-id中
- 来自Android的Google Cloud Endpoints API错误413(请求实体太大)
- iOS自定义URLscheme与Universal Links和Android相对应
- cordova调度任务
- 从相机中dynamic检测不同形状(圆形,方形和矩形)?
- 改变了jQuery Mobile的默认图标集,在浏览器上工作,在设备上失败