MySQL में CHANGE कमांड: कॉलम नाम बदलने का पूर्ण गाइड
MySQL में CHANGE कमांड का उपयोग कॉलम का नाम बदलने के लिए किया जाता है। यह ALTER TABLE स्टेटमेंट का हिस्सा है और कॉलम की परिभाषा (डेटा टाइप, कंस्ट्रेंट) को भी संशोधित कर सकता है।
वाक्यविन्यास
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
उदाहरण के साथ पूर्ण प्रदर्शन
टेबल बनाना
mysql> CREATE TABLE DemoTable796 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100),
StudentAge INT
);
टेबल संरचना जांचना (पहले)
mysql> DESC DemoTable796;
आउटपुट:
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+----------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| Name | varchar(100) | YES | | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
CHANGE कमांड से कॉलम नाम बदलना
mysql> ALTER TABLE DemoTable796 CHANGE Name StudentName VARCHAR(100);
नोट: नया नाम (StudentName) के बाद कॉलम परिभाषा (VARCHAR(100)) दोहराना आवश्यक है।
टेबल संरचना जांचना (बाद में)
mysql> DESC DemoTable796;
आउटपुट:
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| StudentName | varchar(100) | YES | | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
CHANGE vs MODIFY:
| कमांड | उपयोग | नाम बदल सकता है? |
|---|---|---|
| CHANGE | नाम + परिभाषा बदलें | हाँ |
| MODIFY | केवल परिभाषा बदलें | नहीं |
CHANGE के अन्य उपयोग
- डेटा टाइप बदलना:
CHANGE age age BIGINT - कंस्ट्रेंट जोड़ना:
CHANGE email email VARCHAR(100) NOT NULL - कॉलम क्रम बदलना:
CHANGE col1 col1 INT FIRSTयाAFTER col2
सावधानियां
- मौजूदा डेटा नए टाइप के साथ संगत होना चाहिए
- इंडेक्स, फॉरेन की, व्यू, स्टोर्ड प्रोसीजर प्रभावित हो सकते हैं
- बड़े टेबल पर लॉक हो सकता है (ऑनलाइन DDL के बिना)