數組的第一個元素(在大多數編程語言中)的id(索引)爲0. MySQL表的第一個元素(行)具有(自動遞增的)id。後者似乎是個例外。爲什麼MySQL從1開始計數而不是0?
回答
您可以將自動遞增列的起點設置爲任意數量的,就像這樣:
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-24 18:48:44
自動增量是一個PK,與數組的基於零的編號沒有關係。在那裏確保記錄是獨一無二的。你也可以定義一個增量值(n),並使PK增加n。所以如果你從1000開始,增量爲10,你得到1010,1020,1030 ......這可能很有趣(與數組有關):http://en.wikipedia.org/wiki/Zero-based_numbering – Roger 2013-02-24 19:19:56
的我猜想的主要原因是數據庫中的行不是數組,而且自動增量值不是數組索引所指的索引。主鍵ID可以是任何值,並且在很大程度上它是非常重要的,它是唯一的,不能保證是其他任何東西(例如,你可以刪除一行並且不會重新編號)。
這有點像比較蘋果和橘子!
數組從0開始,因爲這是第一個數字。 Autoinc字段從你想要的任何數字開始,在這種情況下,我們寧願它是1.
要問的更好的問題是「數組爲什麼是零索引?」原因與指針算術有關。數組的索引是相對於指針地址的偏移量。在C++中,給定數組char x[5]
,表達式x[1]
和是等效的,因爲sizeof(char) == 1
。
因此,從1開始的自動遞增字段是有意義的。數組和這些字段之間沒有真正的關聯。
- 1. 爲什麼增量計數從0開始而不是從1開始?
- 2. 爲什麼inode數字從1開始而不是0?
- 3. 爲什麼我的集合決定從0開始而不是1開始?
- 4. 爲什麼從std :: placeholders :: _ 1開始而不是_0開始?
- 5. 酒吧從1開始而不是0
- 6. 爲什麼retainCount是0而不是1?
- 7. 在JDBC中,爲什麼準備語句的參數索引從1開始而不是從0開始?
- 8. 爲什麼返回-1而不是0?
- 9. 如何在Excel宏中使VBA從0開始計數而不是1
- 10. 使用位置計數節點 - 有時枚舉從0開始而不是1
- 11. 從位置1開始NSArray不是0
- 12. 爲什麼-1 >> 1是-1?而1 >> 1是0!
- 13. 爲什麼0 && 1是1,而1 && 0在紅寶石中是0?
- 14. MSChart的X軸開始從-1而不是0
- 15. PHP:更新值從0開始,而不是1
- 16. 爲什麼我的數組搜索返回0而不是1?
- 17. 我想ID從0開始,而是從1
- 18. 爲什麼第一個循環結果爲0而不是1?
- 19. PHPExcel行從1開始,列爲0
- 20. 試圖獲得嘗試從1開始而不是0的嘗試次數
- 21. 爲什麼2 + 1&0結果是0?
- 22. 紅寶石爲什麼0 || 1是0
- 23. 如何使熊貓數據框的列號從1開始,而不是從0開始
- 24. 爲什麼輸出下面的代碼1而不是0?
- 25. 爲什麼在二進制補碼(-1 >> 1)== -1而不是0?
- 26. 爲什麼爲(;;)而不是while(1)?
- 27. 如何讓vim使用從1而不是0開始計數的相對行數
- 28. 爲什麼五個0爲什麼不是1到5
- 29. 將數據插入數據庫 - 爲什麼我使用-1而不是0?
- 30. jQuery計數元素從0開始?
0行不太響。但是,第一行的確如此。還有'NO_AUTO_VALUE_ON_ZERO'設置。 http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html#sqlmode_no_auto_value_on_zero – hank 2013-02-24 18:43:18
也許大多數編程語言,但不是全部(http://en.wikipedia.org/wiki/Comparison_of_programming_languages_ %28array%29#Array%5Fsystem%5Fcross-reference%5Flist) – thebjorn 2013-02-24 18:44:17
AUTO_INCREMENT值不會將類似數組的數據結構賦予表,行本身保持不相關和無序。他們所做的只是確保主鍵的唯一性。不要把它們看作索引數據結構! – 2013-02-24 18:44:19