sqlite,如何删除旧条目?

时间:2016-05-27 19:28:52

标签: sql sqlite

如果我使用:

创建表格
CREATE TABLE IF NOT EXISTS Pics (X INTEGER NOT NULL, Y INTEGER NOT NULL, Z INTEGER NOT NULL, T INTEGER NOT NULL, Pic BLOB NULL,PRIMARY KEY(X, Y, Z, T))

并说我使用以下方法在此表中插入1000个条目:

REPLACE INTO Pics(X, Y, Z, T, Pic)

我怎么知道哪个条目是最旧的并删除它? 我想要实现的是检查条目是否超过1000行,如果是这样,当插入新行时,最旧的行将被删除。

1 个答案:

答案 0 :(得分:1)

你不能。

为了能够确定首先插入了哪些行,您需要有一个订购概念。

由于你没有描述暗示排序的值之间的任何关系,而是给出了它们的名称,如X,Y和Z,我会猜测没有这样的关系。

因此,您无法确定先插入两行中的哪一行。

因此您无法删除“最旧的”,因为您无法识别这些行。

以下是您可以添加到表中的一些内容,但可能不是详尽无遗的列表:

  • 时间戳列,告诉您何时添加了一行
  • 增量列,告诉您添加了行的订单
  • 某种关系,比如你正在插入一个X值正确的行,然后是一个有序的Y值,并且Z值是有序的,这样你就可以按顺序排序X,Y,Z并按初始顺序获取行