ALTER TABLE ... MODIFY COLUMN का उपयोग करके कॉलम के डेटा प्रकार का आकार (लंबाई) बढ़ा या घटा सकते हैं।
मूल संरचना:
mysql> DESCRIBE Student;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Name | varchar(20) | YES | | NULL | |
| RollNo | int(11) | YES | | NULL | |
| Grade | varchar(10) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Grade को VARCHAR(10) से VARCHAR(50) में बढ़ाना:
mysql> ALTER TABLE Student MODIFY column Grade Varchar(50);
Query OK, 3 rows affected (0.85 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> DESCRIBE Student;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Name | varchar(20) | YES | | NULL | |
| RollNo | int(11) | YES | | NULL | |
| Grade | varchar(50) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
आकार घटाने का उदाहरण (सावधानी से):
-- यदि सभी मौजूदा मान 20 कैरेक्टर से कम हैं
ALTER TABLE Student MODIFY column Name Varchar(20);
महत्वपूर्ण चेतावनी:
- आकार घटाने पर: यदि कोई मान नई सीमा से बड़ा है, तो MySQL 8.0+ में एरर देता है (strict mode में), या डेटा काट देता है (non-strict mode में)
- प्रदर्शन: बड़ी टेबल पर आकार बदलना धीमा हो सकता है (टेबल पुनर्निर्माण)
- इंडेक्स: इंडेक्स वाले कॉलम पर आकार बदलने से इंडेक्स पुनर्निर्मित होता है
सर्वोत्तम अभ्यास: भविष्य की आवश्यकताओं को ध्यान में रखकर पर्याप्त आकार दें (जैसे VARCHAR(255) या TEXT प्रकार)।