हां, MySQL में AUTO_INCREMENT कॉलम डिफ़ॉल्ट रूप से साइन्ड इंटीजर (धनात्मक और ऋणात्मक दोनों मान) होता है।
उदाहरण: टेबल बनाना
mysql> CREATE TABLE DemoTable (
-> MyNumber INT AUTO_INCREMENT PRIMARY KEY
-> );
Query OK, 0 rows affected (0.45 sec)
ऋणात्मक मानों सहित डेटा डालना
आप AUTO_INCREMENT कॉलम में स्पष्ट रूप से ऋणात्मक मान डाल सकते हैं:
mysql> INSERT INTO DemoTable VALUES(); -- ऑटो: 1 Query OK, 1 row affected (0.19 sec) mysql> INSERT INTO DemoTable VALUES(-100); -- स्पष्ट ऋणात्मक Query OK, 1 row affected (0.12 sec) mysql> INSERT INTO DemoTable VALUES(-300); -- स्पष्ट ऋणात्मक Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO DemoTable VALUES(0); -- शून्य अगला ऑटो मान ट्रिगर करता है Query OK, 1 row affected (0.18 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+----------+ | MyNumber | +----------+ | -300 | | -100 | | 1 | | 2 | +----------+ 4 rows in set (0.00 sec)
महत्वपूर्ण व्यवहार:
- AUTO_INCREMENT कॉलम में
0याNULLडालने से अगला क्रमिक मान उत्पन्न होता है - स्पष्ट ऋणात्मक मान अनुमत हैं क्योंकि कॉलम साइन्ड है
- अगला ऑटो-जनरेटेड मान मौजूदा अधिकतम धनात्मक मान + 1 होगा (इस मामले में 3)
सर्वोत्तम अभ्यास: AUTO_INCREMENT कॉलम में मैन्युअल रूप से मान डालने से बचें, विशेष रूप से ऋणात्मक मान, क्योंकि यह क्रम को भ्रमित कर सकता है।