2010-11-20 16 views
0

i içeren bir web uygulama oluşturma 4 önemli id ​​enmysql içinde bir autoincrement için bir başlangıç ​​noktası ve maksimum değer ayarlamak mümkün mü?

ve oto kimliği

i autp artırılır sayısını sınırlandırmayacağız umuyordum ne olduğunu artırılır hangi belirlenmesini hızlandırmak için.

örnek:

orderid = 10000000, böylece bir dizi üretecektir 10m arasındaki -

palletid = 20000000 20m 19.999.999-29.999.999

ÜrünNo = 30000000 30m - 39.999.999

ve bu id Bir limite ulaşmak, şimdi mevcut olan eski sayıları yeniden kullanmaya başlayacak mı?

+0

Lütfen prefix'i kullanmayı düşündüğüm – CarneyCode

cevap

1

Bu, otomatikleştirme sütunlarının çalışma şekli değil.

Muhtemelen başlangıç ​​noktasını ayarlayabildiğinizden emin olun, ancak sisteme yerleşik olmayan eski sayıları yeniden kullanmakla ilgili bir maksimum ve kısım olabilir.

Neden buna ihtiyacınız var?

Genel fikir birliği, otoantırma sütunlarını kullanırsanız, gerçekten değerin kendisinin umrunda olmamanızdır. Elbette, bunun benzersiz olduğunu umursuyorsunuz, ancak gerçek değerinin ne olduğu umrumda değil.

Baktığınız zaman, neden umursuyorsunuz? Eski sayıları yeniden kullanmak için neden buna ihtiyacınız var?

Sistemdeki çeşitli öğeleri tanımlamak için bunu kullanmak istediğinizi söylüyorsunuz. Kullanıcılar için mi demek istiyorsun? Neden sadece bir önek kullanmıyorsunuz? Siparişler için O123, müşteriler için C123, ürünler için P123 vb.

+0

numaralı tohumlamayı okuyun, ancak bunu benim için halletmesine izin vererek bunu basitleştirmeyi ummuştum. –

+0

sistemde çok daha fazla kimlik var ama bu 3 bir sipariş ve ürün paletini tanımlamak için kullanılacaktır. –

0

Hayır için başlangıç ​​değeri, ancak böyle bir şey deneyin:

Bu tabii sadece teorik
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 
) 

, oyun onunla ...

İlgili konular