2013-07-14 62 views
1

我的第一個問題是:SQL AUTO_INCREMENT行爲

  • 我可以手動輸入ID到表的AUTO_INCREMENT列? 例如:我有10條與ID從1到10,我可以手動輸入11紀錄的3 ID(是的,這是一個重複!)

我的第二個問題是:

  • 我認爲有可能手動輸入ID號碼,如果我有9條記錄,ID爲1 - 9,我的第10條記錄的ID是11,那麼該怎麼辦?「Auto_increment」會跳過它跳到12,還是它會增加另一個11?

我知道我沒有表達得那麼好,但我很困惑,希望有人能幫助!

感謝感謝

回答

2
  1. 你就是不行。 auto_increment列不能包含重複項,通常用作主鍵。只要你有索引就可以有一個非PK的auto_increment列。每個表只能有一個auto_increment列。
  2. 是的,可以在auto_increment字段中手動插入一個值。它將從最大值+ 1開始。因此,你將有一個序列間隙。

這裏是SQLFiddle演示

進一步閱讀Using AUTO_INCREMENT

+0

注:AUTO_INCREMENT技術上不*需要*是PK(這個回答Notes *應*);儘管它經常被用於這種替代-PK的宗旨,與物理佈局打得很好 - 所有鍵列/元組必須是唯一的標識列,不能包含重複。 – user2246674

+0

@ user2246674不夠公平。在更新的答案中特別提到。 – peterm