यदि ऑटो-इन्क्रीमेंट आपकी आवश्यकताओं के लिए पर्याप्त नहीं है, तो आप n के साथ एक परमाणु अनुक्रम तंत्र बना सकते हैं इस तरह नामित अनुक्रम:
अपने अनुक्रमों को संग्रहीत करने के लिए एक तालिका बनाएं:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
मान लें कि आपके पास तालिका में 'foo' के लिए एक पंक्ति है, तो आप परमाणु रूप से अगली अनुक्रम आईडी इस तरह प्राप्त कर सकते हैं:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
कोई ताले की आवश्यकता नहीं है। दोनों कथनों को एक ही सत्र में निष्पादित करने की आवश्यकता है, ताकि चयन होने पर स्थानीय चर @next वास्तव में परिभाषित हो।