可以使用事务在插入语句中设置最大数量的值吗?
我的Android应用程序功能示例:
public void addArray(ArrayList<MyObject> arrData) {
this.mDb.beginTransaction();
try {
for(MyObject obj : arrData){
ContentValues values = new ContentValues();
values.put(KEY_ROW_ID, obj.getId());
values.put(KEY_NAME , obj.getName());
values.put(KEY_ICON , obj.getImage());
//////// LIMIT HERE ?
this.mDb.insert(TABLE, null, values);
}
this.mDb.setTransactionSuccessful();
}
finally {
this.mDb.endTransaction();
}
}
由于
答案 0 :(得分:2)
每笔交易的插入数量没有实际限制。
您可能会遇到磁盘空间填充问题,然后才能看到未完成事务中的行数存在任何问题。
SQLite将所有插入意图写入日志或沃尔玛文件,并且它可以很容易地增长到千兆字节。
我个人试图在一次交易中插入多达10万行,而且工作正常。
SQLite作者D. Richard Hipp甚至建议在程序启动时打开事务,做你需要做的任何事情很长时间,并且只在你退出或明确保存状态时提交。这基本上是实现撤销功能的廉价方式 - 只需回滚当前事务。