Asp.net
數據庫中的自動增量功能
我使用 SQL Server,當我創建一個新表時,我將特定欄位設置為自動增量主鍵。問題是有些人告訴我使該欄位成為主鍵的自動增量意味著在刪除任何記錄時(他們不關心自動增量欄位編號)該欄位會在某些時候增加 - 如果我的欄位類型是例如整數 - 整數的範圍將被完全消耗,我會遇到麻煩。所以他們告訴我不要再使用這個功能了。
最好的解決方案是通過程式碼獲取我的主鍵的最大值,然後如果該值不存在,則最大值將是
1其他明智的max + 1。關於這個問題有什麼建議嗎?我可以使用自動增量功能嗎?
我還想知道不宜使用自動增量的情況……以及替代方案……
注意:: 這個問題一般不是針對任何 DBMS 的,我想知道對於 ORACLE、Mysql、INFORMIX 等 DBMS 是否也是如此。
非常感謝。
您應該使用標識(自動遞增)列。bigint數據類型最多可儲存2^63-1 (9,223,372,036,854,775,807) 的值。我認為您的系統不會很快達到這個值,即使您要插入和刪除大量記錄。
如果你正確地實施你提出的方法,你最終會遇到很多鎖定問題。否則,您將不得不處理由於違反約束而引發的異常(或者更糟糕的是 -非唯一值,如果沒有主鍵約束)。