我正在创建一个数据库,我将存储一些有关电池的统计数据。
每次电池电量下降1%,我都想在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
最佳答案
我将使用如下触发器和删除查询:
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