加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

插入新记录时,为SQLite创建触发器以删除旧记录

发布时间:2020-12-12 18:56:34 所属栏目:百科 来源:网络整理
导读:我在SQLite数据库中有“log”表,在那里我写了所有的日志文件. 但是我想假装数据库变得越来越大 – 这样做最聪明的方法是使用insert命令的触发器 – 至少我是这么认为的…… 插入新记录时,触发器将被触发,删除超过10天的所有记录. 要么… 插入新记录时,删除超
我在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

这将选择1000个最新行并删除该select语句中没有的任何内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读