MySQL में अद्वितीय कैसे छोड़ें?


139
Create Table: CREATE TABLE `fuinfo` (
  `fid` int(10) unsigned NOT NULL,
  `name` varchar(40) NOT NULL,
  `email` varchar(128) NOT NULL,
  UNIQUE KEY `email` (`email`),
  UNIQUE KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

मैं पर अद्वितीय कुंजी ड्रॉप करना चाहते हैं email, कैसे?

जवाबों:


278

बस आप MySQL में सूचकांक को हटाने के लिए निम्न एसक्यूएल स्क्रिप्ट का उपयोग कर सकते हैं:

alter table fuinfo drop index email;

26
ध्यान दें कि यदि आप emailस्तंभ के लिए कोई विदेशी कुंजी मौजूद है (त्रुटि 150) तो आप इस तरह से एक कुंजी को छोड़ने में सक्षम नहीं हो सकते हैं । इसे काम करने के लिए, पहले विदेशी कुंजी छोड़ें, फिर सूचकांक छोड़ें, और बाद में विदेशी कुंजी को फिर से बनाएँ। जैसे ALTER TABLE fuinfo DROP विदेशी कुंजी fk_name_for_email;
ब्रैड पार्क

61

एक बेहतर तरीका है जो आपको तालिका को बदलने की आवश्यकता नहीं है:

mysql> DROP INDEX email ON fuinfo;

जहां ईमेल अद्वितीय कुंजी (इंडेक्स) का नाम है।

आप इसे इस तरह वापस भी ला सकते हैं:

mysql> CREATE UNIQUE INDEX email ON fuinfo(email);

जहां IDEX के बाद का ईमेल इंडेक्स का नाम है और यह वैकल्पिक नहीं है। आप INDEX की जगह KEY का उपयोग कर सकते हैं।

इसके अलावा यह संभव है कि बनाने (हटाने) बहुरंगी अद्वितीय indecies की तरह:

mysql> CREATE UNIQUE INDEX email_fid ON fuinfo(email, fid);
mysql> DROP INDEX email_fid ON fuinfo;

यदि आपने बहुरंगी अनुक्रमणिका का नाम निर्दिष्ट नहीं किया है तो आप इसे इस तरह हटा सकते हैं:

mysql> DROP INDEX email ON fuinfo;

जहां ईमेल कॉलम नाम है।


5
ये सभी वास्तव में किसी भी तरह से करेंगे, इसलिए ऐसा नहीं है कि आप वास्तव में इससे बच रहे हैं। यह एक ही बात के लिए एक अलग वाक्यविन्यास है।
mpeters

9

mysql> DROP INDEX ईमेल ON fuinfo;

जहां ईमेल अद्वितीय कुंजी (कॉलम नाम के बजाय) है। आप द्वारा अद्वितीय कुंजी का नाम पाते हैं

mysql> SHOW CREATE TABLE fuinfo;

उदाहरण के लिए, आप यहां पर अद्वितीय कुंजी का नाम देख सकते हैं, जो ईमेल_2 हो सकती है। इसलिए...

mysql> DROP INDEX email_2 ON fuinfo;

mysql> DESCRIBE fuinfo;

यह दिखाना चाहिए कि सूचकांक हटा दिया गया है


5

नीचे क्वेरी का उपयोग करें:

ALTER TABLE `table_name` DROP INDEX key_name;

यदि आपको key_name नहीं पता है, तो पहले क्वेरी से नीचे का प्रयास करें, आप key_name प्राप्त कर सकते हैं।

SHOW CREATE TABLE table_name

या

SHOW INDEX FROM table_name;

यदि आप mysql तालिका से प्राथमिक कुंजी को निकालना / छोड़ना चाहते हैं, तो उसके लिए क्वेरी से नीचे का उपयोग करें

ALTER TABLE `products` DROP INDEX `PRIMARY`;

से लिया गया कोड: http://chandreshrana.blogspot.in/2015/10/how-to-remove-unique-key-from-mysql.html


4

DROP INDEX column_nameटेबल_नाम पर

डेटाबेस का चयन करें और sql टैब को क्वेरी करें। यह विशेष कॉलम के इंडेक्स को हटा देता है। इसने मेरे लिए PHP MyADMIN में काम किया



2

MySQL 5.7.11 के लिए

Step-1: सबसे पहले Unique Key प्राप्त करें

इसे प्राप्त करने के लिए इस क्वेरी का उपयोग करें:

१.१) शो टेबल यूजर;

आखिरी में, यह इस तरह होगा:

.....

.....

अद्वितीय कुंजी UK_8bv559q1gobqoulqpitq0gvr6( phoneNum)

.....

....

चरण -2: इस क्वेरी द्वारा अद्वितीय कुंजी निकालें।

अन्य तालिका उपयोगकर्ता DROP INDEX UK_8bv559q1gobqoulqpitq0gvr6;

चरण -3: इस क्वेरी द्वारा तालिका जानकारी की जाँच करें:

DESC उपयोगकर्ता;

यह दिखाना चाहिए कि सूचकांक हटा दिया गया है

बस इतना ही।



1

किसी स्तंभ का यूनिक निकालने के लिए इसे आज़माएँ:

ALTER TABLE  `0_ms_labdip_details` DROP INDEX column_tcx

इस कोड को phpmyadmin में चलाएं और स्तंभ के अनन्य को हटा दें


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.