我在sqlite数据库中有“log”表,在那里我写了所有的日志文件.
但是我想假装数据库变得越来越大 – 这样做最聪明的方法是使用insert命令的触发器 – 至少我是这么认为的……
插入新记录时,触发器将被触发,删除超过10天的所有记录.
要么…
插入新记录时,删除超过特定数量的所有旧记录(例如1000).
我需要一个示例代码.
亲切的问候,和thx.
解决方法
这将创建一个插入触发器,该触发器将删除创建日期超过10天的任何内容.
CREATE TRIGGER [TRIGGER_NAME] AFTER INSERT ON my_table BEGIN DELETE FROM LOG WHERE DATE(CREATE_DATE) > DATE('now','-10 days'); END
如果你想做一些基于大小的事情就像你说1000行一样,你可以做这样的事情.
CREATE TRIGGER [TRIGGER_NAME] AFTER INSERT ON my_table BEGIN DELETE FROM LOG WHERE ROW_NO NOT IN (SELECT TOP 1000 ROW_NO FROM LOG ORDER BY CREATE_DATE DESC); END