MySQL में ALTER TABLE ... CHANGE COLUMN का उपयोग करके मौजूदा डेटा को प्रभावित किए बिना VARCHAR कॉलम का आकार बढ़ाएं।
सिंटैक्स
ALTER TABLE yourTableName CHANGE COLUMN columnName columnName VARCHAR(newSize);
उदाहरण
टेबल बनाना (VARCHAR 200)
mysql> create table IncreaseVarcharDemo ( -> StudentId varchar(200) -> ); Query OK, 0 rows affected (0.60 sec)
रिकॉर्ड डालना
mysql> insert into IncreaseVarcharDemo values('John123');
वर्तमान संरचना देखना
mysql> select *from IncreaseVarcharDemo;
+-----------+ | StudentId | +-----------+ | John123 | +-----------+
आकार 200 से 1000 बढ़ाना
mysql> alter table IncreaseVarcharDemo change StudentId StudentId varchar(1000); Query OK, 0 rows affected (0.18 sec)
पुष्टि करना
mysql> desc IncreaseVarcharDemo;
+-----------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------+------+-----+---------+-------+ | StudentId | varchar(1000) | YES | | NULL | | +-----------+---------------+------+-----+---------+-------+
महत्वपूर्ण बिंदु
- आकार बढ़ाना सुरक्षित है — डेटा कटता नहीं
- आकार घटाना जोखिम भरा है — मौजूदा डेटा नई सीमा से बड़ा होने पर कट जाएगा
CHANGE COLUMNके लिए कॉलम नाम दो बार लिखना आवश्यक हैMODIFY COLUMNभी उपयोग कर सकते हैं (नाम नहीं बदलता):MODIFY COLUMN StudentId VARCHAR(1000)
आकार घटाने से पहले जांचें
-- अधिकतम वर्तमान लंबाई जांचें SELECT MAX(CHAR_LENGTH(StudentId)) FROM IncreaseVarcharDemo; -- यदि अधिकतम लंबाई नई सीमा से कम है, तो सुरक्षित है ALTER TABLE IncreaseVarcharDemo MODIFY COLUMN StudentId VARCHAR(50);
अन्य प्रकार परिवर्तन
-- VARCHAR से TEXT (बड़ा करने के लिए) ALTER TABLE t MODIFY COLUMN col TEXT; -- CHAR से VARCHAR ALTER TABLE t MODIFY COLUMN col VARCHAR(255); -- कॉलम नाम भी बदलना हो तो CHANGE उपयोग करें ALTER TABLE t CHANGE old_name new_name VARCHAR(500);
प्रदर्शन नोट
- आकार बढ़ाना मेटाडेटा-ओनली ऑपरेशन हो सकता है (तेज)
- InnoDB में कुछ मामलों में टेबल रीबिल्ड होता है
- बड़े टेबल पर पीक समय में न चलाएं