UNIQUE कंस्ट्रेंट से डुप्लीकेट एंट्री रोकना
MySQL में किसी कॉलम या कॉलम्स के कॉम्बिनेशन पर यूनिक वैल्यू लागू करने के लिए UNIQUE कंस्ट्रेंट का उपयोग किया जाता है।
टेबल बनाना UNIQUE कंस्ट्रेंट के साथ
CREATE TABLE DemoTable832(
FirstName VARCHAR(100),
LastName VARCHAR(100),
UNIQUE(FirstName, LastName)
);
यहां FirstName और LastName का कॉम्बिनेशन यूनिक होना चाहिए।
डेटा इन्सर्ट करना
INSERT INTO DemoTable832 VALUES('John', 'Smith'); -- सफल
INSERT INTO DemoTable832 VALUES('Adam', 'Smith'); -- सफल
INSERT INTO DemoTable832 VALUES('John', 'Doe'); -- सफल
INSERT INTO DemoTable832 VALUES('John', 'Smith'); -- एरर: डुप्लीकेट एंट्री
एरर मैसेज
ERROR 1062 (23000): Duplicate entry 'John-Smith' for key 'FirstName'
मौजूदा डेटा देखना
SELECT * FROM DemoTable832;
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Adam | Smith | | John | Doe | | John | Smith | +-----------+----------+
महत्वपूर्ण बिंदु
UNIQUEकंस्ट्रेंट NULL वैल्यू को अनुमति देता है (एक से अधिक NULL संभव)- कंपोजिट UNIQUE कंस्ट्रेंट में कॉलम्स का क्रम मायने रखता है
- इंडेक्स अपने आप बन जाता है, जिससे लुकअप तेज होता है
- मौजूदा टेबल पर जोड़ने के लिए:
ALTER TABLE table_name ADD UNIQUE(col1, col2);
INSERT IGNORE या ON DUPLICATE KEY UPDATE
एरर के बजाय चुपचाप छोड़ने के लिए:
INSERT IGNORE INTO DemoTable832 VALUES('John', 'Smith');
या अपडेट करने के लिए:
INSERT INTO DemoTable832 VALUES('John', 'Smith')
ON DUPLICATE KEY UPDATE LastName = 'Smith';