我想知道如何在数据库的开头插入一个元素?我想这样做是因为: a) 我想将元素 (ListView) 显示为“最后插入在顶部,首先插入在底部”(如堆栈) b) 我想限制我的数据库中的元素数量。添加新元素(超过限制)时,我可以放入新元素(在开头)并删除最后一个。 (还不知道如何删除最后一个元素)。
我正在寻找解决方案,但我开始怀疑我是否可以控制元素的插入方式。如果不是,我正在考虑从头到尾显示数据库。但实际上不知道该怎么做,因为游标总是设置在数据库的开头。如果可以实现这一点,我可以通过删除第一个元素来解决 b)(同样不知道如何实现)。
最佳答案
每个 SQLite 表的每一行都有一个 64 位带符号整数键,用于唯一标识其表中的行。这个整数通常称为“rowid”
最后插入在顶部,首先插入在底部....
SELECT * from mytable order by ROWID desc;
阅读更多关于 ROWID here 的信息
然后,删除最旧的:
DELETE from mytable WHERE ROWID = (SELECT MIN(ROWID) FROM mytable);
如果使用 ROWID,则不必修改现有表。并且,ROWID 的值是有保证的。
关于android - android数据库的插入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657472/