MySQL टेबल से UNIQUE कंस्ट्रेंट हटाने के लिए पहले इंडेक्स नाम पता करें, फिर DROP INDEX या ALTER TABLE ... DROP INDEX उपयोग करें।
चरण 1: इंडेक्स नाम पता करें
mysql> SHOW INDEX FROM empl\G *************************** 1. row *************************** Table: empl Non_unique: 0 Key_name: empno Seq_in_index: 1 Column_name: empno ... 1 row in set (0.02 sec)
Key_name (empno) इंडेक्स नाम है।
चरण 2: UNIQUE कंस्ट्रेंट ड्रॉप करें
विधि 1: ALTER TABLE
mysql> ALTER TABLE empl DROP INDEX empno; Query OK, 0 rows affected (0.26 sec)
विधि 2: DROP INDEX
mysql> DROP INDEX empno ON empl; Query OK, 0 rows affected (0.17 sec)
वेरिफिकेशन
mysql> DESCRIBE empl; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | empno | int(11) | YES | | NULL | | | F_name | varchar(20) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ mysql> SHOW INDEX FROM empl; Empty set (0.00 sec)
परिणाम
Keyकॉलम खाली - UNIQUE कंस्ट्रेंट हट गयाSHOW INDEXखाली सेट - कोई इंडेक्स नहीं
<ली>कॉलम अब डुप्लिकेट मान स्वीकार कर सकता है
सिंटैक्स सारांश
| कमांड | सिंटैक्स |
|---|---|
| ALTER TABLE | ALTER TABLE table_name DROP INDEX index_name; |
| DROP INDEX | DROP INDEX index_name ON table_name; |
महत्वपूर्ण
- इंडेक्स नाम
SHOW INDEXसे प्राप्त करें
<ली>यदि कंस्ट्रेंट नाम दिया गया था (CONSTRAINT uk_name), वही नाम उपयोग करें
- PRIMARY KEY के लिए:
ALTER TABLE ... DROP PRIMARY KEY