Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL टेबल में डुप्लिकेट रिकॉर्ड डालने पर त्रुटि प्रदर्शित करना

परिचय

MySQL में किसी कॉलम पर UNIQUE KEY कंस्ट्रेंट लगाकर डुप्लिकेट मानों को रोका जा सकता है। डुप्लिकेट डालने का प्रयास करने पर MySQL त्रुटि 1062 देता है।

उदाहरण: टेबल बनाना

mysql> CREATE TABLE DemoTable1553 (
    -> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName VARCHAR(20),
    -> EmployeeSalary INT
    -> );
Query OK, 0 rows affected (0.47 sec)

यूनिक की जोड़ना

mysql> ALTER TABLE DemoTable1553 ADD UNIQUE(EmployeeSalary);
Query OK, 0 rows affected (0.53 sec)
Records: 0  Duplicates: 0  Warnings: 0

डेटा डालना

mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('Chris', 45000);
Query OK, 1 row affected (0.21 sec)
mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('David', 35000);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('Sam', 25000);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('Carol', 45000);
ERROR 1062 (23000): Duplicate entry '45000' for key 'EmployeeSalary'

सफल रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable1553;

आउटपुट:

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Chris        | 45000          |
| 2          | David        | 35000          |
| 3          | Sam          | 25000          |
+------------+--------------+----------------+
3 rows in set (0.00 sec)

व्याख्या

  • ADD UNIQUE(EmployeeSalary) - EmployeeSalary कॉलम पर यूनिक कंस्ट्रेंट जोड़ता है
  • पहले तीन INSERT सफल
  • चौथा INSERT (Carol, 45000) विफल क्योंकि 45000 पहले से मौजूद है (Chris)
  • त्रुटि: ERROR 1062 (23000): Duplicate entry '45000' for key 'EmployeeSalary'

यूनिक कंस्ट्रेंट बनाने के अन्य तरीके

-- टेबल बनाते समय
CREATE TABLE DemoTable (
  Id INT PRIMARY KEY,
  Email VARCHAR(100),
  UNIQUE KEY uk_email (Email)
);

-- नामित यूनिक इंडेक्स
CREATE UNIQUE INDEX uk_email ON DemoTable(Email);

-- एकाधिक कॉलम पर यूनिक (कॉम्पोजिट)
ALTER TABLE DemoTable ADD UNIQUE uk_name_dept (Name, Department);

डुप्लिकेट हैंडलिंग विकल्प

  • INSERT IGNORE - त्रुटि के बजाय चुपचाप अनदेखा करें
  • INSERT ... ON DUPLICATE KEY UPDATE - मौजूदा पंक्ति अपडेट करें
  • REPLACE INTO - पुरानी हटाएं, नई डालें (प्राथमिक कुंजी पर)

UNIQUE कंस्ट्रेंट डेटा अखंडता लागू करने का मूलभूत तरीका है।

  1. - MySQL में डुप्लीकेट रिकॉर्ड कैसे खोजें और दिखाएं?

    1 से डुप्लीकेट वाली रो खोजें। उदाहरण CREATE TABLE DuplicateFound (ID INT, Name VARCHAR(100), Location VARCHAR(200)); INSERT INTO DuplicateFound VALUES (1,John,US), (2,Bob,UK), (3,David,US), (4,Smith,US), (5,Carol,UK); डुप्लीकेट लोकेशन वाली सभी रो 1 ) ORDER BY Location; आउटपुट +------+-------+---

  1. - MySQL टेबल में सभी डुप्लीकेट रिकॉर्ड कैसे डिलीट करें?

    टेबल से डुप्लीकेट रिकॉर्ड डिलीट करने के लिए हम DELETE कमांड का उपयोग कर सकते हैं। आइए अब एक टेबल बनाते हैं। mysql> create table DuplicateDeleteDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.60 sec) DuplicateDeleteDemo टेबल में रिकॉर्ड्स इन्सर्ट कर

  1. Java में PreparedStatement का उपयोग करके MySQL टेबल में रिकॉर्ड कैसे डालें? Java में PreparedStatement का उपयोग करके MySQL टेबल में रिकॉर्ड कैसे डालें?

    PreparedStatement के साथ पैरामीटराइज़्ड INSERT SQL इंजेक्शन रोकने और प्रदर्शन में सुधार के लिए Java में PreparedStatement का उपयोग करें। प्लेसहोल्डर (?) के साथ SQL लिखें और सेटर मेथड्स से मान बांधें। सिंटैक्स String query = INSERT INTO yourTableName(col1, col2, col3) VALUES (?, ?, ?); PreparedStat