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

MySQL कॉलम को VARCHAR(30) से VARCHAR(100) में ALTER कैसे करें

ALTER TABLE ... MODIFY COLUMN से कॉलम आकार बढ़ाएं

मौजूदा कॉलम की लंबाई बदलने के लिए ALTER TABLE के साथ MODIFY COLUMN का उपयोग करें।

सिंटैक्स

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName VARCHAR(100) NOT NULL;

उदाहरण: टेबल बनाना

mysql> create table syntaxOfAlterCommandDemo (
    -> UserId int,
    -> UserName varchar(30),
    -> UserAge int,
    -> UserCityName varchar(50)
    -> );

बदलने से पहले DESC

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| UserName     | varchar(30) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

ALTER क्वेरी

mysql> ALTER TABLE syntaxOfAlterCommandDemo MODIFY COLUMN UserName VARCHAR(100) NOT NULL;
Query OK, 0 rows affected (1.36 sec)

बदलने के बाद DESC

+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| UserName     | varchar(100) | NO   |     | NULL    |       |
+--------------+--------------+------+-----+---------+-------+

महत्वपूर्ण बिंदु

  • लंबाई बढ़ाना (30→100): सुरक्षित, डेटा लॉस नहीं
  • लंबाई घटाना (100→30): मौजूदा डेटा कट सकता है, चेतावनी मिलती है
  • NOT NULL जोड़ने से मौजूदा NULL मानों पर एरर आ सकता है
  • बड़ी टेबल्स पर लॉक हो सकता है (ऑनलाइन DDL MySQL 5.6+ में बेहतर)

अन्य MODIFY विकल्प

-- डेटा टाइप बदलना
ALTER TABLE t MODIFY col BIGINT;

-- डिफ़ॉल्ट बदलना
ALTER TABLE t MODIFY col INT DEFAULT 0;

-- कॉलम नाम बदलना (CHANGE उपयोग करें)
ALTER TABLE t CHANGE oldName newName VARCHAR(100);
  1. - MySQL में SUBSTRING_INDEX() का उपयोग करके कॉलम कैसे विभाजित करें?

    MySQL में SUBSTRING_INDEX() और LOCATE() फ़ंक्शन का उपयोग करके डिलिमिटर (जैसे अंडरस्कोर) के आधार पर कॉलम को भागों में विभाजित किया जा सकता है। सिंटैक्स 0: बाएं से count भाग -- count < 0: दाएं से |count| भाग उदाहरण: पहला भाग प्राप्त करें (पहले _ से पहले) mysql> CREATE TABLE DemoTable (Name VARCH

  1. - MySQL में 'FROM' को कॉलम नाम कैसे बनाएं?

    चूंकि FROM एक आरक्षित शब्द है, इसे कॉलम नाम मानने के लिए बैकटिक्स प्रतीक का उपयोग करें। हम अब FROM आरक्षित शब्द को बैकटिक से घेरकर एक टेबल बनाएंगे: mysql> create table DemoTable1810 ( `from` varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड

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

    समस्या VARCHAR कॉलम पर MAX() सीधे काम नहीं करता क्योंकि स्ट्रिंग तुलना वर्णानुक्रम में होती है। समाधान CAST() का उपयोग करके VARCHAR को UNSIGNED INTEGER में बदलें फिर MAX() लागू करें। उदाहरण INSERT INTO DemoTable2030 VALUES (8), (1), (10001), (901); क्वेरी SELECT MAX(CAST(Value AS UNSIGNED)) FRO