Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में एक साथ एक से अधिक कॉलम का डेटा प्रकार कैसे बदलें?


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)

  1. - MySQL में कॉलम का डिफ़ॉल्ट मान कैसे संशोधित करें?

    MySQL में ALTER TABLE ... MODIFY कमांड का उपयोग करके आप किसी मौजूदा कॉलम का डिफ़ॉल्ट मान बदल सकते हैं बिना डेटा प्रकार बदले। उदाहरण तालिका बनाना (डिफ़ॉल्ट John के साथ) CREATE TABLE DemoTable ( UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName VARCHAR(20) DEFAULT John ); संरचना जांच

  1. - MySQL टेबल में निर्माण समय (created time) कैसे स्टोर करें?

    MySQL में रिकॉर्ड निर्माण समय ऑटोमेटिक स्टोर करने के लिए DEFAULT CURRENT_TIMESTAMP का उपयोग करें। टेबल निर्माण mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Arrivaltime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); डेटा डालना mysql> INSERT INTO DemoTable(Arriva

  1. - MySQL में VARCHAR कॉलम से किसी विशेष मान से अधिक मान कैसे प्राप्त करें

    चूंकि जिस कॉलम से आप विशेष मान से अधिक मान प्राप्त करना चाहते हैं वह VARCHAR है, CAST() फ़ंक्शन का उपयोग करें। उदाहरण के लिए, varchar मानों वाले कॉलम से 999 से अधिक मान लाने के लिए। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable ( Value varchar(100) ); Query OK, 0 rows affected