我试图存储一个集合(它保留其元素的顺序)。我将遍历集合,并将元素逐一插入到DB中。假设我想一个接一个地检索元素。我是否能够按照插入元素的顺序检索元素?
发布于 2016-05-04 07:56:57
不,数据库表是面向堆的。因此,从理论上讲,当所有的行都是相同大小的时候,这个“可以”工作。但是,当您在某个页面中留下一些空闲空间,然后插入较短的行时,它将被放入该页面中。
因此,请不要信任任何数据库中的插入顺序。包括MySQL。
发布于 2016-05-04 20:07:20
不幸的是,事实并非如此。如果要按顺序检索行,则应使用与此Id列有关的序列(如id列、主键)和order子句。
内置于rowid伪列中的Oracle包含行号信息;但是您不应该依赖于此。表可以启用行移动属性。
https://stackoverflow.com/questions/37021480
复制相似问题