यह एक बदलाव है जिसे में प्रलेखित किया गया है। MySQL 8.0.19 रिलीज़ नोट :
एक पूर्णांक कॉलम की "लंबाई" का कोई मतलब नहीं है। int(11)
. का एक कॉलम int(2)
. जैसा ही है या int(40)
. वे सभी एक निश्चित आकार, 32-बिट पूर्णांक डेटा प्रकार हैं। वे समान न्यूनतम और अधिकतम मान का समर्थन करते हैं।
पूर्णांक स्तंभों की "लंबाई" वर्षों से MySQL की भ्रमित करने वाली विशेषता रही है। यह केवल एक संकेत है जो प्रदर्शन की चौड़ाई को प्रभावित करता है, भंडारण या मूल्यों की सीमा को नहीं। व्यावहारिक रूप से, यह केवल तभी मायने रखता है जब आप ZEROFILL
. का उपयोग करते हैं विकल्प।
mysql> create table t ( i1 int(6) zerofill, i2 int(12) zerofill );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t set i1 = 123, i2 = 123;
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+--------+--------------+
| i1 | i2 |
+--------+--------------+
| 000123 | 000000000123 |
+--------+--------------+
1 row in set (0.00 sec)
तो यह अच्छी बात है कि भ्रामक पूर्णांक "लंबाई" को अब हटा दिया गया है और हटा दिया गया है। इसने कई वर्षों से भ्रम की स्थिति पैदा की है।