我注意到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会有所帮助,但它并没有。我仍然得到有序的行。是不是有办法保持行和#39;按插入顺序的原始订单?
在拥有主键或唯一键时,行应按其插入顺序存储。
id (prim) │ column1 │ column2
────────────┼─────────┼──────────
8 │ a │ a
4 │ b │ b
3 │ c │ c
5 │ d │ d
如果我不使用主键或唯一键,我会得到所需的结果。
此表和数组仅用于演示。在实际表中,我不使用自动增量或任何序列号/字符串作为主键。每行都有一个唯一的随机标识符,例如9Z4CQtVd8Z
。对它们进行排序没有任何目的/好处。我希望按插入顺序保留行。
答案 0 :(得分:0)
存储数据的顺序根本没有任何意义。并且mysql和其他数据库不保证它将以主键顺序存储数据。在检索数据时需要使用ORDER BY子句。


如果插入一组数据并在没有特定顺序的情况下检索它们,则很可能是将按您插入的顺序返回。但是,如果在此之后删除几行,然后再插入几个,则默认顺序将更改。