[英]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.