मौजूदा MySQL टेबल के किसी कॉलम पर ALTER TABLE स्टेटमेंट का उपयोग करके UNIQUE कंस्ट्रेंट जोड़ा जा सकता है।
सिंटैक्स
-- विधि 1: MODIFY क्लॉज ALTER TABLE table_name MODIFY column_name datatype UNIQUE; -- विधि 2: ADD UNIQUE क्लॉज ALTER TABLE table_name ADD UNIQUE (column_name);
उदाहरण
Test4 टेबल में Name कॉलम पर UNIQUE कंस्ट्रेंट जोड़ना:
mysql> DESCRIBE test4; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | YES | UNI | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ mysql> ALTER TABLE test4 MODIFY Name VARCHAR(20) UNIQUE; Query OK, 0 rows affected (0.22 sec) mysql> DESCRIBE test4; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | YES | UNI | NULL | | | Name | varchar(20) | YES | UNI | NULL | | +-------+-------------+------+-----+---------+-------+
दूसरी विधि से भी समान परिणाम
mysql> ALTER TABLE test4 ADD UNIQUE(name); Query OK, 0 rows affected (0.16 sec)
महत्वपूर्ण नोट
- यदि कॉलम में पहले से डुप्लिकेट मान हैं, तो ALTER TABLE फेल हो जाएगा
- UNIQUE कंस्ट्रेंट
NULLमान अनुमति देता है (एकाधिक NULL संभव) - इंडेक्स नाम ऑटो-जेनरेट होता है (कॉलम नाम पर आधारित)
- इंडेक्स नाम कस्टमाइज़ करने के लिए
CREATE UNIQUE INDEXउपयोग करें
सत्यापन
SHOW INDEX FROM test4\G -- Key_name में इंडेक्स नाम, Column_name में कॉलम नाम दिखेगा