我需要生成獨特的「IDS」 MySQL的計數器,美中不足的是,它可以是隻有1間 - 99999針對具體情況
「好」的事情是,它必須是唯一的獨特組與另一列。
我們有兩組,每組都有自己的「GROUP_ID」,每組需要像unique('group_id', 'increment_id')
的99999條記錄是不夠好幾年了每個組的權利,但它是不夠的,所有的組一起,所以我不能只用AUTO_INCREMENT創建表並在其中插入記錄並進行自動增量。
例如,如果我需要5個記錄一組和三個記錄了兩個組,我想獲得這樣的事:
group_id, increment_id
1, 1,
1, 2,
1, 3,
1, 4,
1, 5,
2, 1
2, 2,
2, 3
此外,衝突是不是一種選擇,因此使用類似「長度」可以是棘手的,如果做編程(可以有也就是10個請求一次,對於給定的GROUP_ID他們每個人的第一選擇長度,然後嘗試創建10行具有相同increment_id)
但是我在想 - 如果我將它設置爲count的子選項的值,比它總是「OK」?
第一個選項本身不起作用 - 每當我在那裏放置記錄時它就會上升,因此會更早達到99999 – libik
然而第二個選項 - 碰撞是什麼?如果大量的併發請求到達數據庫來創建這樣的記錄,它會一直是「ok」,還是會崩潰,因爲在試圖放入新記錄時,在給定時間選擇「max」不再是最大值了? – libik
你只需要更新current_counter爲特定的group_id,每個組將有你想要的分隔計數器。 –