2011-05-10 101 views
1

我有一個表格,其中我已經開始在10000的自動增量ID,這樣我有10000個值保留手動插入管理員的值。然而,當插入到MyTable(ID,名稱,值)VALUES(500,「測試」,「測試」)時,我做了一個選擇,它忽略了我給我的ID並推入下一個10,000範圍。任何關於修復這個問題的建議或可能是錯誤的?上面的代碼當然是僞代碼,但如果它沒有意義,我可以給出一個真實的代碼示例。插入一個自動增量字段

回答

7

好的,在你得到你的問題的答案之前,我必須警告你關於非常你嘗試在那裏做的壞習慣。不要誤會我的意思,許多人都試圖做你正在做的事情,而這根本不是事情的方式。

您的auto_incremented ID是主鍵。主鍵用於唯一標識表中的一行。而已。除此之外,它沒有其他特殊的含義。

那對你來說意味着什麼?這意味着你的想法,你會爲管理員「保留」1-10k是不好的。爲什麼它不好?因爲你篡改了主鍵。你永遠不應該決定主鍵的價值應該是什麼,這是數據庫的工作有很多原因(例如一致性)。 另一件事,爲什麼它不好是你有限的人只有10K可能的條目。另一方面,你將如何計算管理員的下一個條目是什麼?如果輸入了1,2,3,4,然後刪除ID = 3的條目,該怎麼辦?然後會發生什麼?順序值是什麼? 3或5?

話雖如此,你應該重新考慮你的策略。爲什麼不添加一個字段「isAdmin」,它會告訴你管理員是否發佈了一些內容?

+0

你確實說過你最終會回答這個問題,而你從未這麼做過:-P – ilasno 2013-06-24 18:37:51