MySQL टेबल से अनोखा अवरोध


जवाबों:


347

एक अद्वितीय बाधा भी एक सूचकांक है।

SHOW INDEX FROM tbl_nameसूचकांक का नाम जानने के लिए सबसे पहले उपयोग करें। सूचकांक का नाम key_nameउस क्वेरी के परिणामों में कहे जाने वाले कॉलम में संग्रहीत होता है ।

तब आप DROP INDEX का उपयोग कर सकते हैं :

DROP INDEX index_name ON tbl_name

या परिवर्तन तालिका सिंटैक्स:

ALTER TABLE tbl_name DROP INDEX index_name

1
सॉरी सर मैंने सवाल उठाने से पहले इसे आजमाया था, लेकिन इसका काम नहीं हुआ
अंकुर मुखर्जी

@Ankur मुखर्जी: मैं उल्लेख करना भूल गया: आपको क्रमशः अपनी वास्तविक तालिका का नाम और वास्तविक सूचकांक का नाम tbl_name और index_name बदलना होगा। आप MySQL क्वेरी ब्राउज़र में नाम देख सकते हैं। आप यह भी कर सकते हैं SHOW CREATE TABLE tbl_name
मार्क बायर्स

त्रुटि संदेश: "आपको अपने SQL सिंटैक्स में एक त्रुटि है, उस मैनुअल की जांच करें जो आपके MySQL सर्वर संस्करण के लिए सही सिंटैक्स के निकट है (खिलाड़ी 1 वर्ष, टूर्नामेंट) का उपयोग करने के लिए लाइन 1 पर"
अंकुर मुखर्जी

1
@ ठाकुर मुखर्जी: जिस तरह से मैंने सुझाव दिया है वह मेरी राय में इसे करने का सबसे अच्छा तरीका है।
मार्क बायर्स

1
मैंने phpMyAdmin का उपयोग करते हुए प्रश्न में कहीं पढ़ा ... @systemovich द्वारा प्रदान किए गए उत्तर को स्वीकृत के रूप में चिह्नित किया जाना चाहिए।
Pere

123

आप नीचे दी गई तालिका में दिखाए गए अनुसार phpMyAdmin का उपयोग करकेDROP एक तालिका से एक अद्वितीय बाधा बना सकते हैं। विंगस्पैन फ़ील्ड पर एक अद्वितीय बाधा रखी गई है। बाधा का नाम इस उदाहरण में फ़ील्ड नाम के समान है।

वैकल्पिक शब्द


34
यह ध्यान रखना महत्वपूर्ण है कि अनुक्रमित अनुभाग डिफ़ॉल्ट रूप से ढह गया है, और 12px फ़ॉन्ट में एक छोटा, सूक्ष्म लिंक द्वारा विस्तारित किया गया है जहां अनुभाग स्क्रीनशॉट में है। लेकिन आपके लिए धन्यवाद, मैंने इसे पाया। अपना चेहरा आशीर्वाद दें। +1
जैक

11

एक मेज पर एक अद्वितीय कुंजी बाधा रखने में सक्षम अनुक्रमित हैं PRIMARYऔर UNIQUEअनुक्रमित।

एक स्तंभ पर अद्वितीय कुंजी बाधा को दूर करने के लिए, लेकिन सूचकांक रखें, आप प्रकार के साथ सूचकांक को हटा सकते हैं और फिर से बना सकते हैं INDEX

ध्यान दें कि सभी टेबल के लिए एक इंडेक्स चिन्हित होना एक अच्छा विचार है PRIMARY


2
अपवित्र क्योंकि @thomasrutter ने इस तथ्य को छुआ है कि एक अद्वितीय बाधा को हटाने से क्वेरी के प्रदर्शन पर प्रतिकूल प्रभाव पड़ सकता है - और इसे UNIQUEनियमित रूप से सूचकांक को प्रतिस्थापित करके कम किया जा सकता है INDEX
एलेक्स

4

Phpmyadmin का उपयोग करके UNIQUE बाधा को जोड़ने के लिए, उस तालिका की संरचना पर जाएं और नीचे खोजें और उस पर क्लिक करें,

यहां छवि विवरण दर्ज करें

इसी तरह से बाधा को दूर करने के लिए, उसी तरह, संरचना पर जाएं और अनुक्रमित टैब तक स्क्रॉल करें और नीचे ढूंढें और ड्रॉप डाउन क्लिक करें, यहां छवि विवरण दर्ज करें

आशा है कि यह काम करेगा।

का आनंद लें ;)


यह समाधान वास्तव में मैं क्या देख रहा था।
आर्येह बेज्ज

2

WAMP 3.0 के लिए: नीचे दिए गए संरचना जोड़ें पर क्लिक करें 1 कॉलम आप देखेंगे - 'इंडेक्स' क्लिक -इंडेक्स और आप जो भी इंडेक्स चाहते हैं उसे छोड़ दें।


2

यदि आप mysql डेटाबेस तालिका से अद्वितीय बाधाओं को हटाना चाहते हैं, तो ड्रॉप इंडेक्स के साथ परिवर्तन तालिका का उपयोग करें।

उदाहरण:

तालिका यूनिक_कॉन्स्ट्रक्ट्स बनाएं (यूनिड इंट, एक्टिविटी_नामचर्चा (100), कंसट्रैक्ट एक्टिविट_यूक्नी यूएनआईक्यूई (एक्टिविटी_नाम), प्राइमरी की (यूनिड);

alter table unique_constraints drop index activty_uqniue;

कहाँ activty_uqniue के लिए अद्वितीय बाधा है ACTIVITY_NAME स्तंभ।


0

अद्वितीय कुंजी छोड़ते समय हम सूचकांक का उपयोग करते हैं

ALTER TABLE tbl
DROP INDEX  unique_address;

0

सिंटैक्स के साथ बाधा को हटाया जा सकता है:

तालिका में परिवर्तन

MySQL 8.0.19 के अनुसार, ALTER TABLE किसी भी प्रकार के मौजूदा अवरोधों को छोड़ने और बदलने के लिए अधिक सामान्य (और SQL मानक) सिंटैक्स की अनुमति देता है, जहां बाधा नाम बाधा से निर्धारित होता है: ALTER TABLE tbl_name DROP CONSTRAINT symbol;

उदाहरण:

CREATE TABLE tab(id INT, CONSTRAINT unq_tab_id UNIQUE(id));

-- checking constraint name if autogenerated
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'tab';

-- dropping constraint
ALTER TABLE tab DROP CONSTRAINT unq_tab_id;

db <> फिडेल डेमो


-3

मेरी तालिका का नाम खरीदार है जो एक अद्वितीय बाधा स्तंभ है emp_id अब iam emp_id छोड़ने जा रहा है

चरण 1: sp_helpindex खरीदारों को निष्पादित करें, छवि फ़ाइल देखें

चरण 2: सूचकांक पते की प्रतिलिपि बनाएँ

यहां छवि विवरण दर्ज करें

स्टेप 3: टेबल बायर्स को ड्रॉप करें ड्रॉप की कमी

ध्यान दें:

Blockquote

खरीदारों के बजाय इसे अपनी तालिका के नाम में बदलें :)

Blockquote

सभी कॉलम नाम emp_id बाधाओं के साथ गिरा दिया गया है!


-5
  1. पहले तालिका हटाएं

  2. SQL पर जाएं

इस कोड का उपयोग करें:

CREATE  TABLE service( --tablename 
  `serviceid` int(11) NOT NULL,--columns
  `customerid` varchar(20) DEFAULT NULL,--columns
  `dos` varchar(30) NOT NULL,--columns
  `productname` varchar(150) NOT NULL,--columns
  `modelnumber` bigint(12) NOT NULL,--columns
  `serialnumber` bigint(20) NOT NULL,--columns
  `serviceby` varchar(20) DEFAULT NULL--columns
)
--INSERT VALUES
INSERT INTO `service` (`serviceid`, `customerid`, `dos`, `productname`, `modelnumber`, `serialnumber`, `serviceby`) VALUES
(1, '1', '12/10/2018', 'mouse', 1234555, 234234324, '9999'),
(2, '09', '12/10/2018', 'vhbgj', 79746385, 18923984, '9999'),
(3, '23', '12/10/2018', 'mouse', 123455534, 11111123, '9999'),
(4, '23', '12/10/2018', 'mouse', 12345, 84848, '9999'),
(5, '546456', '12/10/2018', 'ughg', 772882, 457283, '9999'),
(6, '23', '12/10/2018', 'keyboard', 7878787878, 22222, '1'),
(7, '23', '12/10/2018', 'java', 11, 98908, '9999'),
(8, '128', '12/10/2018', 'mouse', 9912280626, 111111, '9999'),
(9, '23', '15/10/2018', 'hg', 29829354, 4564564646, '9999'),
(10, '12', '15/10/2018', '2', 5256, 888888, '9999');
--before droping table
ALTER TABLE `service`
  ADD PRIMARY KEY (`serviceid`),
  ADD  unique`modelnumber` (`modelnumber`),
  ADD  unique`serialnumber` (`serialnumber`),
  ADD unique`modelnumber_2` (`modelnumber`);
--after droping table
ALTER TABLE `service`
  ADD PRIMARY KEY (`serviceid`),
  ADD  modelnumber` (`modelnumber`),
  ADD  serialnumber` (`serialnumber`),
  ADD modelnumber_2` (`modelnumber`);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.