MySQL में डुप्लिकेट रिकॉर्ड डालने से रोकने के लिए आप UNIQUE INDEX का उपयोग कर सकते हैं।
यूनिक इंडेक्स जोड़ने का सिंटैक्स
ALTER TABLE yourTableName ADD UNIQUE INDEX(yourColumnName1, yourColumnName2, ... N);
उदाहरण: टेबल बनाना और यूनिक इंडेक्स जोड़ना
पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
-> Value1 INT,
-> Value2 INT
-> );
Query OK, 0 rows affected (0.55 sec)
अब यूनिक इंडेक्स जोड़ते हैं:
mysql> ALTER TABLE DemoTable ADD UNIQUE INDEX(Value1, Value2); Query OK, 0 rows affected (0.54 sec) Records: 0 Duplicates: 0 Warnings: 0
INSERT IGNORE का उपयोग करके डेटा डालना
महत्वपूर्ण: सामान्य INSERT के बजाय INSERT IGNORE कमांड का उपयोग करें। यदि रिकॉर्ड मौजूदा रिकॉर्ड को डुप्लिकेट नहीं करता है, तो MySQL इसे सामान्य रूप से डालता है। यदि रिकॉर्ड डुप्लिकेट है, तो IGNORE कीवर्ड MySQL को बिना त्रुटि उत्पन्न किए चुपचाप इसे छोड़ने का निर्देश देता है।
mysql> INSERT IGNORE INTO DemoTable VALUES(10,20); Query OK, 1 row affected (0.14 sec) mysql> INSERT IGNORE INTO DemoTable VALUES(10,20); Query OK, 0 rows affected, 1 warning (0.10 sec)
दूसरे इन्सर्ट में 0 पंक्तियाँ प्रभावित हुईं क्योंकि (10,20) पहले से मौजूद था।
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | 20 | +--------+--------+ 1 row in set (0.00 sec)
सारांश: UNIQUE INDEX डुप्लिकेट मानों को रोकता है, जबकि INSERT IGNORE डुप्लिकेट होने पर त्रुटि के बजाय चेतावनी देता है और ऑपरेशन जारी रखता है।