我注意到mysql使用主键或唯一键重新排序行,并以这种方式存储它们。我可以取消这个命令吗?
id (prim) │ column1 │ column2
────────────┼─────────┼──────────
│ │ 如果我将下面的数组插入上面的表中
$rows = [
["8", "a", "a"],
["4", "b", "b"],
["3", "c", "c"],
["5", "d", "d"],
];我得到以下信息
id (prim) │ column1 │ column2
────────────┼─────────┼──────────
3 │ c │ c
4 │ b │ b
5 │ d │ d
8 │ a │ a 我认为使用unique代替primary会有帮助,但它没有帮助,我仍然得到了有序的行。难道没有办法保持行的原始顺序,即插入顺序吗?
行应按其插入顺序存储,同时具有主键或唯一键。
id (prim) │ column1 │ column2
────────────┼─────────┼──────────
8 │ a │ a
4 │ b │ b
3 │ c │ c
5 │ d │ d 如果不使用主键或唯一键,则会得到所需的结果。
这个表和数组只是用来妖魔化的。在实际的表中,我不对主键使用自动增量或任何顺序数字/字符串。每一行都有一个唯一的随机标识符,例如9Z4CQtVd8Z。把它们分类没有任何目的/好处。我想按插入顺序保留这些行。
发布于 2016-08-04 00:03:03
存储数据的顺序一点也不感兴趣。而且mysql和其他数据库没有提供任何保证,它将按主键顺序存储数据。检索数据时,需要使用ORDER子句。
如果插入一组数据并在没有特定顺序的情况下检索数据,则很可能会按照插入的顺序返回数据。但是,如果在此之后删除几行,然后再插入几行,则默认排序将发生更改。
https://stackoverflow.com/questions/38755482
复制相似问题