我们有一个数据库,用于存储嵌入式设备的测试结果。有一张表格,列出了不同类型的失败(细节不相关),以及主键'keynum'和'NUM_FAILURES'列,列中列出了失败的次数。我们存储通行证和故障,所以通行证在'NUM_FAILURES'中有'0'。用于删除旧结果的SQL触发器
为了防止数据库无限制地增长,我们希望保留最近的1000个结果,以及最后50个超出1000的故障中的任何一个。所以,最糟糕的情况是,表中可能有1050个条目它。我试图找到最有效的SQL插入触发器来删除额外的条目。我会给我迄今为止的答案,但我期待着看看是否有人能够提出更好的东西,因为SQL不是我经常做的事情。
我们在非Windows平台上使用SQLITE3,如果它是相关的。
编辑:为了澄清,我有问题的部分是DELETE,特别是与最近50次失败有关的部分。
通常这是正确的,但问题指定了一个嵌入式设备,所以我们不能认为有任何机制可以做到这一点,或者如果它是可取的。 – Cruachan 2008-10-01 12:28:38
Cruachan关于该平台。而且,触发器本身并不是真正的问题。这是我遇到麻烦的DELETE部分。即使我将它作为单独线程的一部分,情况也是如此。 – mbyrne215 2008-10-01 12:41:28