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

MySQL ALTER TABLE से कॉलम का आकार कैसे बदलें?

ALTER TABLE ... MODIFY COLUMN स्टेटमेंट का उपयोग करके किसी कॉलम के डेटा प्रकार का आकार (लंबाई) बदल सकते हैं।

मूल टेबल संरचना (Student):

mysql> DESCRIBE Student;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Name   | varchar(20) | YES  |     | NULL    |       |
| RollNo | int(11)     | YES  |     | NULL    |       |
| Grade  | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

Name कॉलम को VARCHAR(20) से VARCHAR(50) में बढ़ाना:

mysql> ALTER TABLE Student MODIFY column Name Varchar(50);
Query OK, 3 rows affected (0.85 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> DESCRIBE Student;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Name   | varchar(50) | YES  |     | NULL    |       |
| RollNo | int(11)     | YES  |     | NULL    |       |
| Grade  | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

परिणाम: Name कॉलम का आकार 20 से 50 हो गया।

आकार घटाने पर सावधानी:

-- यदि सभी मौजूदा नाम 15 कैरेक्टर से कम हैं
ALTER TABLE Student MODIFY column Name Varchar(15);
  • Strict Mode (डिफ़ॉल्ट MySQL 5.7+) में: यदि कोई मान नई सीमा से बड़ा है → एरर, कोई बदलाव नहीं
  • Non-Strict Mode में: डेटा काट दिया जाता है (ट्रंकेट), वार्निंग के साथ

प्रदर्शन नोट:

  • बड़ी टेबल पर आकार बदलना टेबल पुनर्निर्माण करता है (धीमा, लॉक)
  • ALGORITHM=INPLACE (MySQL 5.6+) कुछ मामलों में लॉक कम करता है
  • इंडेक्स वाले कॉलम पर आकार बदलने से इंडेक्स पुनर्निर्मित होता है

सर्वोत्तम अभ्यास:

  • भविष्य की आवश्यकताओं को ध्यान में रखकर पर्याप्त आकार दें
  • अनिश्चित लंबाई के लिए TEXT या VARCHAR(255)+ उपयोग करें
  • उत्पादन पर आकार घटाने से पहले बैकअप लें और टेस्ट करें
  1. - MySQL में कॉलम के लिए डिफ़ॉल्ट मान सेट करना

    DEFAULT कीवर्ड का उपयोग किसी कॉलम के लिए डिफ़ॉल्ट मान सेट करने के लिए DEFAULT कीवर्ड का उपयोग करें। यह मान तब स्वतः इन्सर्ट हो जाता है जब कोई मान स्पष्ट रूप से प्रदान नहीं किया जाता। उदाहरण: टेबल बनाना और डिफ़ॉल्ट मान जोड़ना पहले एक बेसिक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable758 ( Id

  1. - MySQL में टेबल कॉलम को VARCHAR से NULL अनुमति वाले में बदलना

    ALTER TABLE CHANGE से कॉलम को NULL अनुमति देना मौजूदा VARCHAR कॉलम को NULL वैल्यू अनुमति देने के लिए (अगर पहले NOT NULL था) ALTER TABLE ... CHANGE का उपयोग करें। सिंटैक्स ALTER TABLE yourTableName CHANGE yourColumnName yourColumnName datatype NULL DEFAULT NULL; टेबल बनाना CREATE TABLE DemoTable13

  1. - क्या हम MySQL टेबल के लिए 'user' शब्द का उपयोग कर सकते हैं?

    उत्तर नहीं, आप MySQL टेबल के लिए सीधे user शब्द का उपयोग नहीं कर सकते क्योंकि यह MySQL में एक आरक्षित शब्द (reserved word) है। MySQL की सिस्टम टेबल mysql.user मौजूद है। समाधान बहुवचन उपयोग करें: users (सबसे आम और अनुशंसित) बैकटिक्स उपयोग करें: `user` (काम करता है लेकिन भ्रमित कर सकता है) वर्णनात्म