MySQL में ALTER TABLE और UNIQUE कंस्ट्रेंट के साथ कॉलम जोड़े को अद्वितीय बनाना
दो या अधिक कॉलम के संयोजन को अद्वितीय बनाने के लिए UNIQUE कंस्ट्रेंट का उपयोग किया जाता है। यह सुनिश्चित करता है कि उन कॉलम का संयोजन तालिका में दोहराया न जाए।
सिंटैक्स
ALTER TABLE yourTableName ADD UNIQUE yourUniqueName(column1, column2, ...);
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName VARCHAR(100),
StudentLastName VARCHAR(100),
StudentAge INT,
StudentPhoneNumber VARCHAR(20)
);
यूनिक कंस्ट्रेंट जोड़ना (पहला नाम + फोन नंबर)
mysql> ALTER TABLE DemoTable ADD UNIQUE DemoTable_unique_StudentFirstName_StudentPhoneNumber (StudentFirstName, StudentPhoneNumber);
रिकॉर्ड डालना (डुप्लिकेट टेस्ट)
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName, StudentAge, StudentPhoneNumber)
VALUES('John', 'Doe', 21, '9878567878');
Query OK, 1 row affected
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName, StudentAge, StudentPhoneNumber)
VALUES('John', 'Smith', 23, '7654674545');
Query OK, 1 row affected
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName, StudentAge, StudentPhoneNumber)
VALUES('John', 'Brown', 21, '9878567878');
ERROR 1062 (23000): Duplicate entry 'John-9878567878' for key 'DemoTable_unique_StudentFirstName_StudentPhoneNumber'
सफल रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+------------------+-----------------+------------+--------------------+ | StudentId | StudentFirstName | StudentLastName | StudentAge | StudentPhoneNumber | +-----------+------------------+-----------------+------------+--------------------+ | 1 | John | Doe | 21 | 9878567878 | | 2 | John | Smith | 23 | 7654674545 | +-----------+------------------+-----------------+------------+--------------------+
मुख्य बिंदु
- तीसरा INSERT विफल हुआ क्योंकि 'John' + '9878567878' का संयोजन पहले से मौजूद था
- अलग अंतिम नाम ('Smith') के साथ समान पहला नाम और फोन नंबर की अनुमति नहीं है
- कंस्ट्रेंट नाम वैकल्पिक है लेकिन डीबगिंग के लिए उपयोगी है