एक MySQL तालिका से UNIQUE बाधा को हटाने के लिए, सबसे पहले, हमें तालिका पर UNIQUE बाधा द्वारा बनाए गए सूचकांक के नाम की जांच करनी होगी। जैसा कि हम जानते हैं कि इस उद्देश्य के लिए SHOW INDEX स्टेटमेंट का उपयोग किया जाता है। 'key_name ' SHOW INDEX स्टेटमेंट के परिणाम सेट में इंडेक्स का नाम होता है। अब या तो DROP INDEX . की सहायता से कथन या तालिका बदलें कथन, हम UNIQUE बाधा को छोड़ सकते हैं। दोनों कथनों का सिंटैक्स इस प्रकार है -
सिंटैक्स
DROP INDEX index_name ON table_name; OR ALTER TABLE table_name DROP INDEX index_name;
उदाहरण
मान लीजिए कि हमारे पास तालिका 'empl' है जिसमें कॉलम 'एम्पनो' पर एक अद्वितीय बाधा है। अनुक्रमणिका नाम की जाँच इस प्रकार की जा सकती है -
mysql> Show Index from empl\G *************************** 1. row *************************** Table: empl Non_unique: 0 Key_name: empno Seq_in_index: 1 Column_name: empno Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 1 row in set (0.02 sec)
अब UNIQUE बाधा को छोड़ने के लिए, हम निम्नलिखित प्रश्न लिख सकते हैं -
mysql> ALTER TABLE empl DROP INDEX empno; Query OK, 0 rows affected (0.26 sec) Records: 0 Duplicates: 0 Warnings: 0
नीचे दी गई क्वेरी का परिणाम सेट दिखाएगा कि कॉलम 'एम्पनो' पर कोई UNIQUE बाधा नहीं है -
mysql> describe empl; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | empno | int(11) | YES | | NULL | | | F_name | varchar(20) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)
भले ही हम अनुक्रमणिका को empl से दिखाएं . चलाएँ क्वेरी तो MySQL के परिणामस्वरूप एक खाली सेट निम्नानुसार होगा -
mysql> Show index from empl; Empty set (0.00 sec)
DROP INDEX स्टेटमेंट की मदद से UNIQUE कंस्ट्रक्शन को 'empl' टेबल से भी हटाया जा सकता है -
mysql> DROP INDEX empno on empl; Query OK, 0 rows affected (0.17 sec) Records: 0 Duplicates: 0 Warnings: 0