MySQL में ALTER TABLE ... CHANGE COLUMN का उपयोग करके कॉलम का डिफ़ॉल्ट मान बदलें।
सिंटैक्स
ALTER TABLE yourTableName CHANGE COLUMN yourColumnName yourColumnName dataType NOT NULL DEFAULT defaultValue;
उदाहरण
टेबल बनाना (डिफ़ॉल्ट NULL)
mysql> create table DefaultDemo ( -> ArrivalTime timestamp -> ); Query OK, 0 rows affected (0.65 sec)
वर्तमान डिफ़ॉल्ट देखना
mysql> desc DefaultDemo;
+-------------+-----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-----------+------+-----+---------+-------+ | ArrivalTime | timestamp | YES | | NULL | | +-------------+-----------+------+-----+---------+-------+
डिफ़ॉल्ट मान CURRENT_TIMESTAMP पर सेट करना
mysql> ALTER TABLE DefaultDemo CHANGE ArrivalTime ArrivalTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; Query OK, 0 rows affected (1.71 sec)
टेस्ट: मान डाले बिना INSERT
mysql> insert into DefaultDemo values(); Query OK, 1 row affected (0.15 sec)
परिणाम
mysql> select *from DefaultDemo;
+---------------------+ | ArrivalTime | +---------------------+ | 2018-12-07 11:31:00 | +---------------------+
अन्य सामान्य डिफ़ॉल्ट मान
-- संख्या के लिए ALTER TABLE products CHANGE price price DECIMAL(10,2) NOT NULL DEFAULT 0.00; -- स्ट्रिंग के लिए ALTER TABLE users CHANGE status status VARCHAR(20) NOT NULL DEFAULT 'active'; -- बूलियन के लिए ALTER TABLE users CHANGE is_active is_active BOOLEAN NOT NULL DEFAULT TRUE; -- तारीख के लिए (केवल स्थिर मान) ALTER TABLE events CHANGE event_date event_date DATE NOT NULL DEFAULT '2024-01-01'; -- UUID के लिए (MySQL 8.0+) ALTER TABLE users CHANGE uuid uuid CHAR(36) NOT NULL DEFAULT (UUID());
डिफ़ॉल्ट हटाना (NULL अनुमति देना)
ALTER TABLE table_name CHANGE COLUMN col_name col_name dataType NULL DEFAULT NULL;
महत्वपूर्ण नोट्स
CHANGE COLUMNके लिए कॉलम नाम दो बार लिखना आवश्यक हैNOT NULLके साथDEFAULTदेना अनिवार्य है यदि कॉलम NOT NULL है- मौजूदा NULL मान वाले कॉलम को NOT NULL बनाने से पहले डेटा अपडेट करें
TIMESTAMPकॉलम परDEFAULT CURRENT_TIMESTAMPऔरON UPDATE CURRENT_TIMESTAMPदोनों उपयोग कर सकते हैं
TIMESTAMP के लिए पूर्ण उदाहरण
ALTER TABLE logs CHANGE created_at created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE updated_at updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;