AUTO_INCREMENT का उपयोग
MySQL में पूर्णांक अनुक्रम (integer sequence) बनाने का मानक तरीका AUTO_INCREMENT विशेषता है। यह स्वचालित रूप से 1 से शुरू होने वाली अनुक्रमिक संख्या निर्दिष्ट करता है।
बुनियादी उदाहरण
mysql> CREATE TABLE AutoIncrementDemo (
-> EmployeeId INT AUTO_INCREMENT,
-> PRIMARY KEY(EmployeeId)
-> );
Query OK, 0 rows affected (0.54 sec)
रिकॉर्ड डालें (मान निर्दिष्ट किए बिना)
mysql> INSERT INTO AutoIncrementDemo VALUES();
mysql> INSERT INTO AutoIncrementDemo VALUES();
mysql> INSERT INTO AutoIncrementDemo VALUES();
mysql> INSERT INTO AutoIncrementDemo VALUES();
mysql> INSERT INTO AutoIncrementDemo VALUES();
mysql> INSERT INTO AutoIncrementDemo VALUES();
परिणाम
mysql> SELECT * FROM AutoIncrementDemo;
+------------+
| EmployeeId |
+------------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+------------+
6 rows in set (0.00 sec)
प्रारंभिक मान बदलें
डिफ़ॉल्ट 1 के बजाय किसी अन्य संख्या से शुरू करने के लिए:
ALTER TABLE AutoIncrementDemo AUTO_INCREMENT = 1000;
अगला इंसर्ट 1000 से शुरू होगा: 1000, 1001, 1002, ...
महत्वपूर्ण विशेषताएं
- अद्वितीयता: प्रत्येक मान अद्वितीय होता है (प्राइमरी की के लिए आदर्श)
- गैप संभव: डिलीट/रोलबैक से गैप आ सकते हैं (1, 2, 4, 5...)
- एक टेबल एक कॉलम: प्रति टेबल केवल एक
AUTO_INCREMENTकॉलम - इंडेक्स आवश्यक: कॉलम इंडेक्स्ड होना चाहिए (आमतौर पर PRIMARY KEY)
उन्नत: अनुक्रम टेबल (सीक्वेंस ऑब्जेक्ट नहीं)
MySQL में PostgreSQL/Oracle जैसे SEQUENCE ऑब्जेक्ट नहीं हैं। जटिल अनुक्रम के लिए:
- एक अलग
sequenceटेबल बनाएं - स्टोर्ड प्रोसीजर/ट्रिगर से मान प्रबंधित करें
- या MySQL 8.0+ में
SEQUENCEइंजन का उपयोग करें (प्लगइन)
नोट: AUTO_INCREMENT केवल सम्मिलन पर मान जनरेट करता है। मौजूदा पंक्तियों को अपडेट नहीं करता।