我創建一個包含Web應用程序4個重要的ID是否可以爲mysql中的自動增量設置起點和最大值?
,並加快識別其中的自動遞增的id是什麼
我希望能設置在autp遞增數量的限制。
例如:
訂單ID =千萬所以會產生若干10米之間 - 19999999
palletid = 2000000020米 - 29999999
的productid = 3000000030米 - 39999999
並且當這些ID的達到極限時,他們是否會開始重複使用現有的舊號碼?
我創建一個包含Web應用程序4個重要的ID是否可以爲mysql中的自動增量設置起點和最大值?
,並加快識別其中的自動遞增的id是什麼
我希望能設置在autp遞增數量的限制。
例如:
訂單ID =千萬所以會產生若干10米之間 - 19999999
palletid = 2000000020米 - 29999999
的productid = 3000000030米 - 39999999
並且當這些ID的達到極限時,他們是否會開始重複使用現有的舊號碼?
這不是自動增量列的工作方式。
當然你可以設置起點,但最大值和關於重複使用舊數字的部分,對不起,沒有內置到系統中。
爲什麼你需要那個?
一般的共識是,如果你使用自動增量列,你並不真正關心值本身。當然,你關心它是獨一無二的,但你不在乎什麼是實際的價值。
因此,既然你在乎,你爲什麼在乎呢?爲什麼你需要它重用舊數字?
你說你想用它來識別系統中的各個項目。你的意思是,對於用戶?爲什麼不使用前綴?訂單的O123,客戶的C123,產品的P123等。
我曾考慮過使用前綴的,但我希望通過讓sql來處理它來簡化這個。 – 2010-11-20 13:42:09
系統中有更多的id,但這3個將用於識別托盤的訂單和產品。 – 2010-11-20 13:43:32
一種方法是定義數據類型。 。 。例如tiny int的最大值是127。 。如果你試圖給自己限制在100個incrementations,你的啓動值設置爲27
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
好主意謝謝。 – 2010-11-20 13:44:02
沒有,但嘗試這樣的事:
INSERT INTO table VALUES(id)
(
Case when
(
SELECT id FROM table
LIMIT COUNT(SELECT * FROM table)-1, 1) >= maximumhere
)
then minimumhere
else MAX(SELECT id FROM table)+1
)
這僅僅是理論上的,當然,玩與它...
請仔細閱讀播種 – CarneyCode 2010-11-20 13:35:59