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

MySQL में ALTER TABLE का उपयोग करके नया कॉलम और इंडेक्स एक साथ जोड़ना

समाधान: ALTER TABLE में ADD COLUMN और ADD INDEX

एक ही ALTER TABLE स्टेटमेंट में नया कॉलम और उस पर इंडेक्स दोनों जोड़ें।

सिंटैक्स

ALTER TABLE yourTableName 
ADD COLUMN yourColumnName dataType, 
ADD INDEX(yourColumnName);

व्यावहारिक उदाहरण

मूल टेबल

mysql> CREATE TABLE AddColumnAndIndexDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(100),
    -> Address VARCHAR(200)
    -> );

कॉलम और इंडेक्स जोड़ना

mysql> ALTER TABLE AddColumnAndIndexDemo 
    -> ADD COLUMN Age INT, 
    -> ADD INDEX(Age);
Query OK, 0 rows affected (1.81 sec)

अद्यतन टेबल संरचना

mysql> DESC AddColumnAndIndexDemo;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| Id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name    | varchar(100) | YES  |     | NULL    |                |
| Address | varchar(200) | YES  |     | NULL    |                |
| Age     | int(11)      | YES  | MUL | NULL    |                |
+--------+--------------+------+-----+---------+----------------+

नोट: Key कॉलम में MUL दर्शाता है कि इस कॉलम पर गैर-अद्वितीय इंडेक्स है।

इंडेक्स विवरण देखना

mysql> SHOW INDEX FROM AddColumnAndIndexDemo;
TableNon_uniqueKey_nameColumn_nameIndex_type
addcolumnandindexdemo0PRIMARYIdBTREE
addcolumnandindexdemo1AgeAgeBTREE

विविधताएं

अद्वितीय इंडेक्स (UNIQUE)

ALTER TABLE yourTableName 
ADD COLUMN Email VARCHAR(100), 
ADD UNIQUE INDEX idx_email (Email);

संयुक्त इंडेक्स

ALTER TABLE yourTableName 
ADD COLUMN FirstName VARCHAR(50),
ADD COLUMN LastName VARCHAR(50),
ADD INDEX idx_name (LastName, FirstName);

कॉलम जोड़ने के बाद इंडेक्स बनाना (अलग स्टेटमेंट)

ALTER TABLE yourTableName ADD COLUMN Age INT;
CREATE INDEX idx_age ON yourTableName(Age);

प्रदर्शन विचार

  • बड़े टेबल पर ALTER TABLE लॉक का कारण बन सकता है
  • MySQL 5.6+ ऑनलाइन DDL का समर्थन करता है (कम लॉकिंग)
  • पीक घंटों के बाहर चलाएं
  • pt-online-schema-change (Percona Toolkit) का उपयोग करें शून्य-डाउनटाइम के लिए
  1. - MySQL तालिका में NULL कॉलम को मान से भरना

    MySQL में IS NULL का उपयोग करके NULL कॉलम को परिकलित मानों से अपडेट करना जब एक कॉलम में NULL मान हों और आप उन्हें अन्य कॉलम के आधार पर परिकलित मान से भरना चाहते हों, तो UPDATE के साथ WHERE ... IS NULL का उपयोग करें। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( ProductPrice INT,

  1. - MySQL में नया कॉलम जोड़कर दो अन्य कॉलम के डेटा से भरें

    SELECT में गणना कॉलम के रूप में दो कॉलम का गुणनफल दो संख्यात्मक कॉलम के गुणनफल को एक नए कॉलम के रूप में SELECT में दिखाने के लिए अंकगणितीय ऑपरेटर (*) और AS उपनाम का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable ( Price INT, Quantity INT ); Query OK, 0 rows affected (0.71 sec) INSERT IN

  1. - MySQL में इंडेक्स के साथ तालिका कैसे बनाएं?

    MySQL में तालिका निर्माण के बाद CREATE INDEX स्टेटमेंट का उपयोग करके इंडेक्स बनाए जा सकते हैं, या तालिका निर्माण के समय परिभाषित किए जा सकते हैं। विधि 1: तालिका निर्माण के बाद CREATE TABLE table_name ( col1 datatype, col2 datatype ); CREATE INDEX index_name1 ON table_name (col1); CREATE IN