gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:55:00 25 4
gpt4 key购买 nike

我在 SQLite 数据库中有一个表“log”,我在其中写入了所有日志文件。

但是我想假装数据库不会变大 - 最聪明的方法是在插入命令上使用触发器 - 至少我这么认为......

插入新记录时,将触发触发器,删除所有超过 10 天的记录。

或者...

插入新记录时,将触发触发器,删除所有超过特定数量(例如 1000)的旧记录。

我需要一个示例代码。

亲切的问候,谢谢。

最佳答案

这将创建一个插入触发器,该触发器将删除创建日期超过 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 个最新的行并删除不在该选择语句中的任何内容。

关于sql - 为 SQLite 创建触发器,当插入新记录时,删除旧记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21235706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com