我正在尝试为我的SQLite数据库构建一个DELETE语句,以确保删除超过X条记录的任何内容。我不熟悉SQL,所以我不确定如何写这个,我还需要确保记录先按日期字段排序,然后存储为INTEGER,这样我就可以了确保我保留最新的X行并删除旧记录。
非常感谢任何有关如何做到这一点的帮助。
答案 0 :(得分:0)
可以在SQLite中使用Sub Query并使用limit
来完成此处,子查询将根据您的限制X(5)返回所有需要删除的ID。我希望它会对你有所帮助
DELETE FROM TABLENAME WHERE ID IN (
SELECT ID FROM TABLENAME
WHERE DATE < strftime('%s','now') limit 5
);
答案 1 :(得分:0)
您可以使用类似于以下内容的查询。您的日期列也应该有一个索引。
DELETE FROM mytable WHERE date_column >= (
SELECT date_column
FROM mytable
ORDER BY date_column
OFFSET num_rows_you_want_to_keep
LIMIT 1
)