繁体   English   中英

如果达到最大大小,SQLlite Android数据库如何自动删除?

[英]SQLlite Android Database how to auto-delete if max size reached?

即时通讯正在为我的应用构建大量日志。 我可以使用平面文件,但在此之前我考虑使用sqllite db。 我想知道是否有一种方法可以创建数据库,并在达到磁盘上的某个字节大小时将其自动删除? 我也想在桌子上这样做。 因此,如果桌子尺寸超过一定的最大值,我会擦拭整个桌子并开始清洁。 我想知道在sql中创建表时是否存在可以用来“触发”此命令的命令?

要触发某事,请使用触发器

SQLite没有内置机制来检测表的字节大小。 最好的办法是对记录进行计数:

CREATE TRIGGER WipeOnOverflow
AFTER INSERT ON MyTable
WHEN (SELECT COUNT(*) FROM MyTable) > 1000
BEGIN
    DELETE FROM MyTable;
END;

要么:

CREATE TRIGGER DeleteOneRecordOnOverflow
AFTER INSERT ON MyTable
FOR EACH ROW
WHEN (SELECT COUNT(*) FROM MyTable) > 1000
BEGIN
    DELETE FROM MyTable WHERE rowid = (SELECT MIN(rowid) FROM MyTable);
END;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM