簡體   English   中英

每個事務的最大插入數

[英]Maximum number of inserts per transaction

可以使用事務在insert語句中設置最大數量的值嗎?

我的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();
    }
}

謝謝

每個事務的插入數量沒有實際限制。

您可能會遇到磁盤空間填充問題,然后才能看到未完成事務中的行數存在任何問題。

SQLite將所有插入意圖寫入日志或沃爾瑪文件,它可以很容易地增長到千兆字節。

我個人試圖在一次交易中插入多達10萬行,而且工作得很好。

SQLite作者D. Richard Hipp甚至建議在程序啟動時打開事務,做你需要做的任何事情很長時間,並且只在你退出或明確保存狀態時提交。 這基本上是實現撤銷功能的廉價方式 - 簡單地回滾當前事務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM