मौजूदा MySQL टेबल पर ALTER TABLE के अलावा CREATE UNIQUE INDEX स्टेटमेंट का उपयोग करके भी UNIQUE कंस्ट्रेंट लागू किया जा सकता है।
सिंटैक्स
CREATE UNIQUE INDEX index_name ON table_name(column_name);
उदाहरण
मान लें Test5 टेबल है जिसमें ID कॉलम पर UNIQUE कंस्ट्रेंट जोड़ना है:
mysql> DESCRIBE TEST5; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | YES | | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ mysql> CREATE UNIQUE INDEX ID_UNQ ON TEST5(ID); Query OK, 0 rows affected (0.20 sec) mysql> DESCRIBE test5; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | YES | UNI | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
परिणाम विश्लेषण
Keyकॉलम मेंUNIदिखाता है कि UNIQUE कंस्ट्रेंट लागू हो गया- इंडेक्स नाम
ID_UNQउपयोगकर्ता-परिभाषित है - यह तरीका
ALTER TABLE ... ADD UNIQUEके समान काम करता है
दोनों तरीकों की तुलना
| पद्धति | सिंटैक्स | नोट |
|---|---|---|
| ALTER TABLE | ALTER TABLE t ADD UNIQUE(col) | मानक SQL, कंस्ट्रेंट नाम ऑटो-जेनरेट |
| CREATE UNIQUE INDEX | CREATE UNIQUE INDEX idx ON t(col) | इंडेक्स नाम नियंत्रित कर सकते हैं |
दोनों तरीके आंतरिक रूप से एक ही UNIQUE इंडेक्स बनाते हैं।