MySQL टेबल में डुप्लीकेट मान रोकने के लिए UNIQUE कंस्ट्रेंट या UNIQUE INDEX जोड़ें।
सिंटैक्स
मौजूदा टेबल पर:
ALTER TABLE yourTableName ADD CONSTRAINT constraintName UNIQUE (columnName);
या सीधे:
ALTER TABLE yourTableName ADD UNIQUE (columnName);
नई टेबल बनाते समय:
CREATE TABLE yourTableName (
columnName INT UNIQUE,
...
);
उदाहरण
CREATE TABLE RemoveDuplicateEntry (
Id INT,
Name VARCHAR(100)
) ENGINE = MyISAM;
ALTER TABLE RemoveDuplicateEntry ADD CONSTRAINT unique_key_id UNIQUE (Id);
संरचना जांचें:
DESC RemoveDuplicateEntry;
Key कॉलम में 'UNI' दिखेगा
डुप्लीकेट डालने का प्रयास
INSERT INTO RemoveDuplicateEntry VALUES (101, 'John'); -- सफल INSERT INTO RemoveDuplicateEntry VALUES (101, 'John'); -- ERROR 1062: Duplicate entry '101' for key 'Id'
महत्वपूर्ण बिंदु
UNIQUENULL मानों को अनुमति देता है (एकाधिक NULL संभव)PRIMARY KEY= UNIQUE + NOT NULL- कंस्ट्रेंट नाम वैकल्पिक, ऑटो-जेनरेट होता है
- बहु-कॉलम यूनिक:
UNIQUE (col1, col2) - हटाने के लिए:
ALTER TABLE table_name DROP INDEX index_name;
INSERT IGNORE / ON DUPLICATE KEY UPDATE
-- डुप्लीकेट पर अनदेखा करें INSERT IGNORE INTO RemoveDuplicateEntry VALUES (101, 'John'); -- डुप्लीकेट पर अपडेट करें INSERT INTO RemoveDuplicateEntry VALUES (101, 'John') ON DUPLICATE KEY UPDATE Name = 'John Updated';