Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सबक्वेरी mysql का उपयोग करके उसी तालिका में auto_increment बदलें

जिस स्थान पर आप उसका उपयोग करने का प्रयास कर रहे हैं उस स्थान पर पार्सर एक सबक्वेरी का समर्थन नहीं करता है।

यहाँ 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 तक बढ़ जाएगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बीता हुआ समय विशिष्ट घंटों तक स्वचालित रूप से पहुंचने पर ईमेल कैसे भेजें?

  2. रेल कनेक्शन समस्या पर रूबी

  3. मैं एक कथन के माध्यम से डेटाबेस में सभी तालिकाओं का वर्णन कैसे कर सकता हूं?

  4. MySQL में पदानुक्रमित क्वेरी। (MySQL के बराबर से कनेक्ट करें)

  5. SQL इंजेक्शन ड्रॉप टेबल काम नहीं कर रहा है