删除超过N个条目的记录

时间:2011-06-30 15:03:38

标签: sqlite history sql-delete

我有一张名为history的表格, 它有三列。 idvaluetimestamp

Id不是主键,但(id, timestamp)对是唯一的。 我想要做的是删除超过特定限制的特定ID的所有旧记录。 例如,如果我有这些值:

-1,value1,1
-1,value2,2
-1,value3,3
-2,value4,4
-2,value5,5
-2,value6,6

限制为2.执行语句后,我应该得到类似的内容:

-1,value2,2
-1,value3,3
-2,value4,4
-2,value5,5
-2,value6,6

2 个答案:

答案 0 :(得分:1)

我想我拥有它(尝试过我的测试用途),答案是:

DELETE  FROM history WHERE id = ?1 AND timestamp NOT in (SELECT sourcetime  FROM    history   WHERE   id =?1 ORDER BY timestamp DESC LIMIT ?2);

答案 1 :(得分:-1)

DELETE FROM ... WHERE timestamp < ...

不起作用?