MySQL में ALTER TABLE ... MODIFY कमांड का उपयोग करके आप किसी मौजूदा VARCHAR कॉलम की लंबाई बढ़ा सकते हैं। यह डेटा हानि के बिना किया जाता है क्योंकि VARCHAR परिवर्तनीय लंबाई वाला है।
उदाहरण तालिका बनाना
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserFirstName VARCHAR(10),
UserLastName VARCHAR(20),
UserAge INT
);
वर्तमान संरचना देखना
mysql> DESC DemoTable;
आउटपुट:
+---------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+----------------+ | UserId | int(11) | NO | PRI | NULL | auto_increment | | UserFirstName | varchar(10) | YES | | NULL | | | UserLastName | varchar(20) | YES | | NULL | | | UserAge | int(11) | YES | | NULL | | +---------------+-------------+------+-----+---------+----------------+
UserFirstName की लंबाई 10 से 40 तक बढ़ाना
mysql> ALTER TABLE DemoTable MODIFY UserFirstName VARCHAR(40);
आउटपुट: Query OK, 0 rows affected (0.23 sec)
बदली हुई संरचना सत्यापित करना
mysql> DESC DemoTable;
आउटपुट:
+---------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+----------------+ | UserId | int(11) | NO | PRI | NULL | auto_increment | | UserFirstName | varchar(40) | YES | | NULL | | | UserLastName | varchar(20) | YES | | NULL | | | UserAge | int(11) | YES | | NULL | | +---------------+-------------+------+-----+---------+----------------+
महत्वपूर्ण बिंदु:
- लंबाई बढ़ाना: सुरक्षित, डेटा हानि नहीं, त्वरित (केवल मेटाडेटा परिवर्तन)
- लंबाई घटाना: जोखिम भरा - मौजूदा डेटा नई लंबाई से लंबा होने पर काट दिया जाएगा या त्रुटि देगा
- प्रकार बदलना: VARCHAR से CHAR या TEXT में बदलने के लिए समान सिंटैक्स
- इंडेक्स: यदि कॉलम इंडेक्स्ड है, तो इंडेक्स पुनर्निर्मित हो सकता है (MySQL संस्करण पर निर्भर)
समान कमांड CHANGE के साथ:
ALTER TABLE DemoTable CHANGE UserFirstName UserFirstName VARCHAR(40);
MODIFY पसंदीदा है जब कॉलम नाम नहीं बदल रहा हो।