Android 是否在SQLite中使用LIMIT给出了“中的数据或行”;先进先出”;原因
我在我的Ionic项目中使用SQLite,我在SQLite服务器中保存日志文件,为此,我想将Android 是否在SQLite中使用LIMIT给出了“中的数据或行”;先进先出”;原因,android,sql,database,sqlite,Android,Sql,Database,Sqlite,我在我的Ionic项目中使用SQLite,我在SQLite服务器中保存日志文件,为此,我想将.db文件限制为以先进先出方式仅包含最后2000个数据值,是否使用 限额2000 将给我存储的最后2000个值或我存储的前2000个值(这不是我的要求) 提前感谢您的帮助。SQL查询返回无序集,除非查询具有ORDER BY。这实际上是SQL表表示无序集这一事实的扩展。根本没有秩序可言 因此,使用不带排序依据的LIMIT返回任意行。看起来行是有序的,但它们不是——至少按照SQL标准是这样。您需要一个订购人
.db
文件限制为以先进先出方式仅包含最后2000个数据值,是否使用
限额2000
将给我存储的最后2000个值或我存储的前2000个值(这不是我的要求)
提前感谢您的帮助。SQL查询返回无序集,除非查询具有ORDER BY
。这实际上是SQL表表示无序集这一事实的扩展。根本没有秩序可言
因此,使用不带排序依据的LIMIT
返回任意行。看起来行是有序的,但它们不是——至少按照SQL标准是这样。您需要一个订购人
有一点需要注意:我承认SQLite是一个非常简单的数据库,每个查询只允许一个线程。因此,它实际上可能“可靠地”按特定顺序返回结果。然而,我从未找到保证这种行为并与SQL标准相矛盾的文档。因此,依赖结果集的排序而不使用ORDER BY是相当危险的,即使它似乎有效。您可以添加ORDER BY id或date列以获取第一个或最后2000个条目。使用触发器。插入新行时,让触发器删除最早的一行。使用LIMIT而不使用ORDER BY会生成任意行(取决于联接、索引、组、分区等)