MySQL में ALTER TABLE ... MODIFY कमांड का उपयोग करके आप किसी मौजूदा कॉलम का डिफ़ॉल्ट मान बदल सकते हैं बिना डेटा प्रकार बदले।
उदाहरण तालिका बनाना (डिफ़ॉल्ट 'John' के साथ)
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(20) DEFAULT 'John'
);
संरचना जांचना
mysql> DESC DemoTable;
आउटपुट: Default = 'John'
डिफ़ॉल्ट मान के साथ रिकॉर्ड डालना
mysql> INSERT INTO DemoTable VALUES ();
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------+----------+ | UserId | UserName | +--------+----------+ | 1 | John | +--------+----------+
डिफ़ॉल्ट मान को 'Chris' में बदलना
mysql> ALTER TABLE DemoTable MODIFY UserName VARCHAR(20) DEFAULT 'Chris';
आउटपुट: Query OK, 0 rows affected (0.19 sec)
बदली हुई संरचना सत्यापित करना
mysql> DESC DemoTable;
आउटपुट: Default = 'Chris'
नया रिकॉर्ड डालना (नया डिफ़ॉल्ट उपयोग होगा)
mysql> INSERT INTO DemoTable VALUES ();
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------+----------+ | UserId | UserName | +--------+----------+ | 1 | John | | 2 | Chris | +--------+----------+
व्याख्या:
MODIFYकॉलम परिभाषा को पुनर्परिभाषित करता है। पूरा प्रकार निर्दिष्ट करना आवश्यक है (VARCHAR(20))।- मौजूदा पंक्तियां अप्रभावित रहती हैं (पंक्ति 1 में अभी भी 'John' है)
- नई पंक्तियां जहां कॉलम मान निर्दिष्ट नहीं है, नया डिफ़ॉल्ट ('Chris') प्राप्त करेंगी
डिफ़ॉल्ट हटाने के लिए:
ALTER TABLE DemoTable MODIFY UserName VARCHAR(20) DEFAULT NULL;
नोट: CHANGE भी काम करता है लेकिन कॉलम नाम दोहराने की आवश्यकता होती है। MODIFY अधिक संक्षिप्त है जब नाम नहीं बदल रहा हो।