簡體   English   中英

sql主鍵自動遞增

[英]sql primary key auto increment

是否有必要在每個新行上自動增加主鍵? 對我來說,這個數字越來越長,我什至沒有用它。
我可以想象,隨着網站上用戶活動的逐步進行,將會添加新的行(我僅通過2個alfa test用戶來測試atm,並且該數字已經auto incremented增加到100以上),最終這個數字可能會達到愚蠢的比例(example: 10029379000577352881086) ,不僅會減慢網站速度(影響用戶體驗),而且還會不可避免地使我的網站超出其配額(超過其允許的尺寸(門店))

真的需要這個嗎?

如果您有一些可以用作主鍵的字段/列(或列的組合),請使用它,為什么要使用自動遞增。 有一些流派認為兩者結合使用。 您可以搜索代理鍵,並且您可能會找到此答案有趣的代理鍵與自然/業務鍵

對於大小配額問題,實際上我認為最大自動增量值不會導致您的網站超過數據限制。 如果它是int類型,則無論內部值如何,它將占用4個字節。 對於SQL Server,int類型可以包含-2 ^ 31(-2,147,483,648)到2 ^ 31-1(2,147,483,647)之間的值。 這是該鏈接

您需要一種方法來唯一標識表中的每個記錄。

如果您已經擁有該地址(例如,用戶ID或電子郵件地址),那么您不一定需要該自動遞增字段。

注意:如果您對該字段還沒有唯一約束,則應添加一個約束,以便不能將重復數據輸入到表中。

警告:如果決定擺脫它,請確保沒有其他表正在使用它。

您不能使用多個列來獲取復合鍵嗎? 只是一個提示。

您確實需要一個標識每一行的鍵。 但是,鍵不必是每行都可以“自動遞增”的數字。 少數人似乎認為遞增數字始終是密鑰的一個好主意,這可能是由於粗心或缺乏對數據庫基礎知識,聲音設計和數據完整性的認識所致。

一個表不一定總是具有主鍵。 對於您的問題,請檢查我的答案:

什么時候和什么時候不應該使用主鍵

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM