हम ALTER कमांड की मदद से कॉलम आकार को संशोधित कर सकते हैं। आइए देखें कि कॉलम आकार कैसे संशोधित करें। मान लीजिए हम किसी कॉलम को कुछ आकार के साथ परिभाषित कर रहे हैं। इंसर्ट के समय यदि हम परिभाषित आकार से अधिक आकार दे रहे हैं, तो एक त्रुटि उत्पन्न होगी।
उपरोक्त समस्या को आकार संशोधित करके कम किया जा सकता है। बेहतर समझ के लिए, हम CREATE कमांड की मदद से एक टेबल बना सकते हैं:
mysql> CREATE TABLE ModifyColumnNameDemo
-> (
-> id INT,
-> StudentName VARCHAR(10)
-> );
Query OK, 0 rows affected (0.45 sec)
टेबल सफलतापूर्वक बनाने के बाद, हम INSERT कमांड की मदद से टेबल में रिकॉर्ड डाल सकते हैं।
mysql> INSERT INTO ModifyColumnNameDemo VALUES(1, 'CarolTaylor');
ERROR 1406 (22001): Data too long for column 'StudentName' at row 1
उपरोक्त क्वेरी से, हमें त्रुटि 1406 मिल रही है। इस त्रुटि को कॉलम संशोधित करके हल किया जा सकता है। हम इसके लिए ALTER कमांड का उपयोग कर सकते हैं। निम्नलिखित सिंटैक्स है:
ALTER TABLE yourTableName MODIFY column_name;
उपरोक्त क्वेरी को कुछ आकार में कॉलम आकार संशोधित करने के लिए लागू करना:
mysql> ALTER TABLE ModifyColumnNameDemo MODIFY StudentName VARCHAR(200);
Query OK, 0 rows affected (1.54 sec)
Records: 0 Duplicates: 0 Warnings: 0
उसके बाद हम जांच सकते हैं कि कॉलम नाम 'StudentName' का आकार 200 है। क्वेरी निम्नानुसार है:
mysql> DESC ModifyColumnNameDemo;
निम्नलिखित आउटपुट है:
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id | INT(11) | YES | | NULL | |
| StudentName | VARCHAR(200) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
2 rows in set (0.04 sec)
ऊपर StudentName कॉलम को देखें, आकार 200 में बदल गया है। अब हम टेबल में एक रिकॉर्ड डाल सकते हैं और हमें कोई त्रुटि नहीं मिलेगी। आइए जांचें:
mysql> INSERT INTO ModifyColumnNameDemo VALUES(1, 'CarolTaylor');
Query OK, 1 row affected (0.14 sec)
उपरोक्त रिकॉर्ड सफलतापूर्वक टेबल में डाल दिया गया है। हम SELECT कमांड की मदद से ऊपर डाले गए रिकॉर्ड को प्रदर्शित कर सकते हैं:
mysql> SELECT * FROM ModifyColumnNameDemo;
निम्नलिखित आउटपुट है:
+------+-------------+
| id | StudentName |
+------+-------------+
| 1 | CarolTaylor |
+------+-------------+
1 row in set (0.00 sec)
उपरोक्त आउटपुट देखें, कॉलम आकार संशोधित करने के बाद रिकॉर्ड सफलतापूर्वक डाला गया है।
नोट: आकार बढ़ाना सुरक्षित है। आकार घटाने से डेटा काटा जा सकता है (चेतावनी/त्रुटि)। डेटा प्रकार बदलने के लिए भी MODIFY उपयोग करें।