जिस स्थान पर आप उसका उपयोग करने का प्रयास कर रहे हैं उस स्थान पर पार्सर एक सबक्वेरी का समर्थन नहीं करता है।
यहाँ sql/sql_yacc.yy से MySQL स्रोत का अंश दिया गया है:
create_table_option:
. . .
| AUTO_INC opt_equal ulonglong_num
आपको वहां जो पढ़ना चाहिए वह यह है कि AUTO_INCREMENT
तालिका विकल्प केवल एक शाब्दिक संख्या को स्वीकार करता है, न कि एक अभिव्यक्ति या एक उपश्रेणी या एक चर या कुछ और। तो आप AUTO_INCREMENT को उसी स्टेटमेंट में सेट नहीं कर सकते जिसमें आप SELECT MAX(id)+1
करते हैं ।
लेकिन आपको ऐसा करने की आवश्यकता नहीं है।
MySQL कभी भी इससे कम ऑटो-इन्क्रीमेंट आईडी आवंटित नहीं करेगा तालिका में वर्तमान में सबसे बड़ा मूल्य। इसलिए यदि आपके पास आईडी मान 102 वाली तालिका है, तो आवंटित अगला मान कम से कम . होगा 103.
आप AUTO_INCREMENT=50 को स्पष्ट रूप से सेट करने का प्रयास भी कर सकते हैं, लेकिन यह स्वचालित रूप से MAX(id)+1 तक बढ़ जाएगा।