2012-07-15 124 views
0

如何讓我的數據庫在創建新行時自動刪除ID最小的條目? 我希望在表格中有10行以上的情況下完成此操作。自動刪除SQLite數據庫中的條目(android)

這裏是我的createEntry方法:

public long createEntry(String latitude, String longitude) { 
    // TODO Auto-generated method stub 
    ContentValues cv = new ContentValues(); 

    cv.put(KEY_LATITUDE, latitude);  
    cv.put(KEY_LONGITUDE, longitude); 



    return myDatabase.insert(DATABASE_TABLE, null, cv); 
} 
+0

創建數據庫觸發器。 – 2012-07-15 22:32:55

回答

1

如果你想從Rolling rows in SQL table刪除「最老」行用最小的ID使用this answer

但是,SQLite表具有最大數量的行標識。一旦達到此限制,使用integer primary key autoincrement的表格將搜索舊的未使用的行標識以進行新插入。這可能導致最新的行具有最低的行ID(並且首先被刪除)。

明白這限制通常爲9223372036854775807如果你希望在你的智能手機應用超過這個很多插入的:

  1. 你是瘋了。
  2. 您可以在觸發器中使用時間戳。
+0

感謝您的回答! 那麼我可能不會使用這麼多條目,但我想限制條目的數量,以使數據庫更易於處理。我有一堆不同的數據庫,每個數據庫經常更新,我只需要像最後十行的信息,從而使其他人不感興趣。 – Eric 2012-07-17 23:24:54

+0

「我想限制條目的數量,以使數據庫更容易處理」我發佈的鏈接使用了一個觸發器,它可以防止您必須多次訪問數據庫來檢查行數並刪除不必要的行,觸發器在一次訪問中做到這一點。 – Sam 2012-07-17 23:35:11