2012-02-01 49 views
1

我正在創建一個數據庫,我將存儲有關電池的一些統計信息。 每次電池下降1%時,我想用一些信息添加一行到我的sqlite數據庫。使用固定數量的項目創建SQLITE表

這是工作得很好,但隨着時間的推移,這張桌子變得非常巨大。

我想要做的是設置最大數量的記錄(比如說100)。

是否可以設置我的表中的記錄數量,或者我需要每次檢查這個表格並通過代碼清理它?

這裏是我的代碼:

create table batterystat (_id integer primary key autoincrement, value integer not null, ....) 

而且我的查詢

public Cursor fetchAllStats{ 
    return db.query(databaseName,myColumns,null,null,null,null,null); 
} 

感謝很多的任何幫助。

注: 「你必須做自己,並刪除通過代碼多餘行」可能是一個正確的答案,如果這是:-P

+0

可能重複http://stackoverflow.com/questions/2035670/limit-an-sqlite-tables-maximum-number-of -rows) – 2012-02-01 12:56:11

回答

2

我會用一個觸發器和的情況下刪除這樣的查詢:

CREATE TRIGGER batterystat_trigger AFTER INSERT ON batterystat 
BEGIN 
    DELETE FROM batterystat where _id NOT IN (SELECT _id from batterystat ORDER BY insertion_date DESC LIMIT 100) 
END 
的[限制的SQLite表的最大行數(
相關問題