数组的第一个元素(在大多数编程语言中)的 id(索引)为 0。MySQL 表的第一个元素(行)的(自动递增)id 为 1。后者似乎是个例外。
问问题
2152 次
3 回答
4
更好的问题是“为什么数组是零索引的?” 原因与指针算法有关。数组的索引是相对于指针地址的偏移量。在 C++ 中,给定数组char x[5]
,表达式x[1]
和*(x + 1)
是等价的,给定sizeof(char) == 1
.
所以从 1 开始的自动递增字段是有意义的。数组和这些字段之间没有真正的关联。
于 2013-02-24T20:20:35.203 回答
1
您可以将自动增量列的开始设置为任意数字,如下所示:
ALTER TABLE tbl AUTO_INCREMENT = 1;
ALTER TABLE tbl AUTO_INCREMENT = 10;
ALTER TABLE tbl AUTO_INCREMENT = 100;
默认值为 1。
也可以看看:
http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html
于 2013-02-24T18:46:05.740 回答
0
我想的主要原因是数据库中的一行不是数组,并且从数组索引的意义上来说,自动增量值不是索引。主键 id 可以是任何值,并且在很大程度上它只是必不可少的,它是唯一的并且不保证是其他任何值(例如,您可以删除一行并且它不会重新编号)。
这有点像比较苹果和橘子!
数组从 0 开始,因为这是第一个数字。Autoinc 字段也可以从您想要的任何数字开始,在这种情况下,我们都希望它是 1。
于 2013-02-24T19:58:46.143 回答