MySQL में ALTER TABLE ... DROP INDEX से यूनिक कंस्ट्रेंट हटाना
MySQL में यूनिक कंस्ट्रेंट आंतरिक रूप से एक UNIQUE INDEX के रूप में लागू होता है। इसलिए इसे हटाने के लिए DROP INDEX का उपयोग करें।
सिंटैक्स
ALTER TABLE yourTableName DROP INDEX yourUniqueIndexName;
उदाहरण: कम्पोजिट यूनिक कंस्ट्रेंट हटाना
CREATE TABLE removeUniquenessConstraint (
Id INT,
Name VARCHAR(100),
Age INT,
isGreaterThan18 BOOL,
UNIQUE (Id, isGreaterThan18)
);
कंस्ट्रेंट नाम देखना
SHOW CREATE TABLE removeUniquenessConstraint;
... UNIQUE KEY `Id` (`Id`,`isGreaterThan18`) ...
यहां इंडेक्स नाम Id है (पहले कॉलम के नाम पर डिफ़ॉल्ट)।
यूनिक कंस्ट्रेंट हटाना
ALTER TABLE removeUniquenessConstraint DROP INDEX `Id`;
सत्यापन
SHOW CREATE TABLE removeUniquenessConstraint;
... कोई UNIQUE KEY नहीं ...
महत्वपूर्ण नोट्स
- यदि यूनिक कंस्ट्रेंट को स्पष्ट नाम दिया गया था (जैसे
CONSTRAINT uk_name UNIQUE (a,b)), तो वही नामDROP INDEX uk_nameमें उपयोग करें। PRIMARY KEYहटाने के लिए:ALTER TABLE tbl DROP PRIMARY KEY;FOREIGN KEYहटाने के लिए:ALTER TABLE tbl DROP FOREIGN KEY fk_name;- इंडेक्स नाम बैकटिक्स (`) में दें यदि इसमें स्पेशल कैरेक्टर या रिज़र्व्ड वर्ड हों।