MySQL में एक ही ALTER TABLE स्टेटमेंट में कई MODIFY COLUMN क्लॉज का उपयोग करके एक साथ कई कॉलम का डेटा प्रकार बदलें।
सिंटैक्स
ALTER TABLE yourTableName MODIFY COLUMN columnName1 dataType1, MODIFY COLUMN columnName2 dataType2, ..., MODIFY COLUMN columnNameN dataTypeN;
उदाहरण
टेबल बनाना
mysql> create table AddColumn ( -> StudentID int, -> StudentName varchar(200) -> ); Query OK, 0 rows affected (0.49 sec)
एक साथ दोनों कॉलम का प्रकार बदलना
mysql> alter table AddColumn -> modify column StudentName varchar(300), -> modify column StudentId varchar(50); Query OK, 0 rows affected (1.95 sec)
परिणाम जांचना
mysql> desc AddColumn;
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | StudentId | varchar(50) | YES | | NULL | | | StudentName | varchar(300) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+
MODIFY vs CHANGE
| कमांड | उपयोग | नाम बदल सकता है? |
|---|---|---|
| MODIFY COLUMN | केवल डेटा प्रकार/विशेषताएं बदलना | नहीं |
| CHANGE COLUMN | नाम और/या प्रकार बदलना | हां |
एक ही ALTER में मिश्रित ऑपरेशन
ALTER TABLE table_name MODIFY COLUMN col1 VARCHAR(100), CHANGE COLUMN old_col2 new_col2 INT, ADD COLUMN new_col3 DATE, DROP COLUMN old_col3;
प्रदर्शन नोट
- एक ही ALTER TABLE में कई ऑपरेशन एक ही टेबल रीबिल्ड में होते हैं
- अलग-अलग ALTER TABLE चलाने से टेबल कई बार रीबिल्ड होगी
- बड़े टेबल पर पीक घंटों में न चलाएं
- पहले बैकअप लें
सामान्य डेटा प्रकार परिवर्तन
-- INT से BIGINT MODIFY COLUMN id BIGINT -- VARCHAR आकार बढ़ाना (सुरक्षित) MODIFY COLUMN name VARCHAR(500) -- VARCHAR आकार घटाना (डेटा कट सकता है - सावधानी!) MODIFY COLUMN name VARCHAR(50) -- DECIMAL परिशुद्धता बदलना MODIFY COLUMN price DECIMAL(12,4)