मुझे एक ऐसी ही समस्या से जूझना पड़ा जो एक श्रेणी के पेड़ को अस्वाभाविक रूप से आदेश दे रही थी। यदि आप एक समय में एक आईडी के लिए सभी पंक्तियों को सम्मिलित कर रहे हैं, तो आप प्रत्येक उप-आईडी के लिए ऐसा कुछ कर सकते हैं:
SET @seq = 0;
INSERT INTO test
(id, subId, text) VALUES
(_id, @seq := @seq + 1, 'Some text')
;
यदि आपको किसी आईडी में एक पंक्ति "जोड़ने" की आवश्यकता है, तो आप @seq को
. के साथ सेट कर सकते हैंSELECT IFNULL(MAX(subId), 0) INTO @seq FROM test WHERE id = _id;
इसके लिए निश्चित रूप से एप्लिकेशन द्वारा आईडी के प्रबंधन की आवश्यकता होगी, न कि mySQL की।
अगली उपलब्ध आईडी प्राप्त करने के लिए आप अंतिम कोड ब्लॉक की तरह ही ऐसा कर सकते हैं।