android数据库中的插入顺序

时间:2011-01-11 12:13:10

标签: android database insert

我想知道如何在数据库的开头插入一个元素?我想这样做是因为: a)我想将元素(ListView)显示为“最后插入顶部并首先插入底部”(如堆栈) b)我想限制数据库中的元素数量。当添加一个新元素(超过限制)时,我可以添加新元素(在开头)并删除最后一个元素。 (还不知道如何删除最后一个元素。)

我正在寻找解决方案,但我开始怀疑我对如何插入元素有任何控制权。如果不是,我正在考虑从头到尾显示数据库。但实际上并不知道如何操作,因为光标始终设置在db的开头。如果可以实现这一点,我可以解决b)删除第一个元素(再次不知道如何实现这一点)。

2 个答案:

答案 0 :(得分:3)

每个SQLite表的每一行都有一个64位有符号整数键,用于唯一标识其表中的行。这个整数通常称为“rowid”

最后插入顶部并首先插入底部....

SELECT * from mytable order by ROWID desc;

详细了解ROWID here

并删除最早的:

DELETE from mytable WHERE ROWID = (SELECT MIN(ROWID) FROM mytable);

如果使用ROWID,则无需修改现有表。而且,ROWID的价值是有保证的。

答案 1 :(得分:1)

将记录插入数据库时​​,可以存储timestamp(作为新字段)。然后,如果超过限制,则删除可以找到的最旧记录(例如,使用MAX SQL关键字)。您可以使用DESC字段对timestamp进行排序,以反向时间顺序显示记录。