Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में कस्टम AUTO_INCREMENT मान सेट करें और ZEROFILL का उपयोग करें। INSERT में कुछ न डालने पर क्या होगा?

हम एक उदाहरण देखेंगे और एक टेबल बनाएंगे जहां हमने StudentId कॉलम को AUTO_INCREMENT = 100 सेट किया है और ZEROFILL का भी उपयोग किया है:

mysql> create table DemoTable ( 
    StudentId int(7) ZEROFILL NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY(StudentId) ) AUTO_INCREMENT=100; 
Query OK, 0 rows affected (0.48 sec)

इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। अब, जब कुछ नहीं डाला जाता, तो मान 101 से शुरू होगा (auto_increment) और बाएं के शेष स्थान 0 से भर जाएंगे क्योंकि हमने टेबल बनाते समय ZEROFILL सेट किया है:

mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.09 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable;

यह निम्नलिखिक आउटपुट देगा:

+-----------+
| StudentId |
+-----------+
| 0000100   |
| 0000101   |
| 0000102   |
| 0000103   |
+-----------+
4 rows in set (0.00 sec)

व्याख्या

  • int(7) ZEROFILL - 7 अंकों की चौड़ाई, बाएं पैडिंग शून्य से
  • AUTO_INCREMENT=100 - अगला मान 100 से शुरू
  • INSERT VALUES() - कोई मान नहीं दिया, ऑटो-इन्क्रीमेंट उपयोग होता है
  • पहला INSERT: 100 → 0000100 (7 अंक)
  • दूसरा: 101 → 0000101, आदि
  • ZEROFILL स्वचालित रूप से UNSIGNED जोड़ता है

महत्वपूर्ण नोट

  • ZEROFILL केवल प्रदर्शन प्रभावित करता है, संग्रहण नहीं
  • अंक गणना में चिह्न शामिल नहीं (UNSIGNED के कारण)
  • MySQL 8.0.17+ में ZEROFILL डिप्रिकेटेड है; एप्लिकेशन लेयर में फॉर्मेट करें
  • अधिकतम डिस्प्ले चौड़ाई 255 है (int के लिए 11 डिफ़ॉल्ट)
  1. - क्या MySQL में INSERT स्टेटमेंट उपयोग करते समय ऑटो-इन्क्रीमेंट कॉलम मान इन्सर्ट करने की आवश्यकता है

    ऑटो-इन्क्रीमेंट कॉलम के लिए मान प्रदान करने की आवश्यकता नहीं नहीं, ऑटो-इन्क्रीमेंट कॉलम के लिए मान इन्सर्ट करने की कोई आवश्यकता नहीं है। यह स्वचालित रूप से 1 से शुरू होकर क्रमिक मान असाइन करता है। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( EmployeeId INT NOT NULL AUTO_INCREME

  1. - MySQL में CASE WHEN से खाली मान के लिए कस्टम नाम प्रदर्शित करें

    MySQL में CASE WHEN स्टेटमेंट का उपयोग करके खाली स्ट्रिंग या NULL मान के लिए कस्टम डिफ़ॉल्ट नाम प्रदर्शित कर सकते हैं। उदाहरण: खाली नाम के लिए Carol Taylor दिखाएं 1. टेबल बनाएं CREATE TABLE DemoTable (Name VARCHAR(20)); 2. डेटा डालें (खाली स्ट्रिंग सहित) INSERT INTO DemoTable VALUES(); --

  1. - MySQL में UNIQUE कंस्ट्रेंट पर बहु-पंक्ति INSERT में डुप्लिकेट होने पर कुछ भी नहीं डलता

    MySQL में एकल INSERT स्टेटमेंट में एकाधिक पंक्तियां डालते समय, यदि कोई पंक्ति UNIQUE कंस्ट्रेंट का उल्लंघन करती है, तो पूरा स्टेटमेंट विफल होता है और कोई पंक्ति नहीं डलती (डिफ़ॉल्ट व्यवहार)। उदाहरण 1. यूनिक कंस्ट्रेंट के साथ टेबल ); 2. बहु-पंक्ति INSERT (चौथी पंक्ति डुप्लिकेट) INSERT INTO DemoT