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

MySQL में मौजूदा टेबल पर यूनिक की कैसे जोड़ें (गैर-अद्वितीय पंक्तियों के साथ)?

ALTER TABLE ... ADD CONSTRAINT UNIQUE

MySQL में मौजूदा टेबल पर यूनिक कंस्ट्रेंट (Unique Key) जोड़ने के लिए ALTER TABLE के साथ ADD CONSTRAINT ... UNIQUE का उपयोग करें।

सिंटैक्स

ALTER TABLE yourTableName 
ADD CONSTRAINT yourConstraintName UNIQUE(yourColumnName1, yourColumnName2, ...);

उदाहरण: MovieId पर यूनिक की

1. टेबल बनाएं

mysql> CREATE TABLE MovieCollectionDemo (
    -> MovieId INT,
    -> MovieDirectorName VARCHAR(200),
    -> NumberOfSongs INT UNSIGNED
    -> );
Query OK, 0 rows affected (0.62 sec)

2. वर्तमान संरचना जांचें

mysql> DESC MovieCollectionDemo;
+-------------------+------------------+------+-----+---------+-------+
| Field             | Type             | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| MovieId           | int(11)          | YES  |     | NULL    |       |
| MovieDirectorName | varchar(200)     | YES  |     | NULL    |       |
| NumberOfSongs     | int(10) unsigned | YES  |     | NULL    |       |
+-------------------+------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

3. यूनिक कंस्ट्रेंट जोड़ें

mysql> ALTER TABLE MovieCollectionDemo 
    -> ADD CONSTRAINT uni_moviecollectio UNIQUE(MovieId);
Query OK, 0 rows affected (0.46 sec)
Records: 0 Duplicates: 0 Warnings: 0

4. पुष्टि करें

mysql> DESC MovieCollectionDemo;
+-------------------+------------------+------+-----+---------+-------+
| Field             | Type             | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| MovieId           | int(11)          | YES  | UNI | NULL    |       |
| MovieDirectorName | varchar(200)     | YES  |     | NULL    |       |
| NumberOfSongs     | int(10) unsigned | YES  |     | NULL    |       |
+-------------------+------------------+------+-----+---------+-------+
3 rows in set (0.02 sec)

परिणाम: Key कॉलम में UNI दिख रहा है - यूनिक की सफलतापूर्वक जोड़ दी गई।

⚠️ महत्वपूर्ण चेतावनी: डुप्लिकेट डेटा

यदि टेबल में पहले से डुप्लिकेट मान हैं, तो यह कमांड **विफल** होगी:

ERROR 1062 (23000): Duplicate entry '123' for key 'uni_moviecollectio'

समाधान: डुप्लिकेट हटाकर यूनिक की जोड़ें

-- 1. डुप्लिकेट पहचानें
SELECT MovieId, COUNT(*) 
FROM MovieCollectionDemo 
GROUP BY MovieId 
HAVING COUNT(*) > 1;

-- 2. डुप्लिकेट हटाएं (एक रखें)
DELETE t1 FROM MovieCollectionDemo t1
INNER JOIN MovieCollectionDemo t2 
WHERE t1.MovieId = t2.MovieId AND t1.id < t2.id;

-- 3. फिर यूनिक की जोड़ें
ALTER TABLE MovieCollectionDemo ADD CONSTRAINT uni_moviecollectio UNIQUE(MovieId);

मल्टी-कॉलम यूनिक की

ALTER TABLE MovieCollectionDemo 
ADD CONSTRAINT uni_movie_director UNIQUE(MovieId, MovieDirectorName);
  1. - MySQL में UPDATE और CURDATE() का उपयोग करके मौजूदा टेबल में वर्तमान दिनांक जोड़ना

    MySQL में UPDATE स्टेटमेंट के साथ CURDATE() फ़ंक्शन का उपयोग करके मौजूदा टेबल के दिनांक कॉलम को वर्तमान दिनांक से अपडेट करें। सिंटैक्स UPDATE yourTableName SET yourColumnName = CURDATE(); उदाहरण: टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable ( -> DueDate DATETIME -> );

  1. - MySQL में शर्तों के आधार पर पंक्तियों को कैसे बदलें?

    MySQL में विशिष्ट शर्तों के आधार पर पंक्तियों के मान अपडेट करने के लिए CASE स्टेटमेंट का उपयोग किया जाता है। यह एक ही UPDATE क्वेरी में कई शर्तों को संभालने का कुशल तरीका है। सिंटैक्स UPDATE table_name SET column_name = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ...

  1. एक्सेस में टेबल में प्राइमरी की कैसे जोड़ें या हटाएं एक्सेस में टेबल में प्राइमरी की कैसे जोड़ें या हटाएं

    जब आप एक माइक्रोसॉफ्ट एक्सेस टेबल बनाते हैं, तो एक्सेस स्वचालित रूप से आपके डेटाबेस टेबल में एक प्राइमरी की बना देगा, लेकिन आप अपने डेटाबेस टेबल के लिए प्राइमरी की के रूप में जिस फ़ील्ड को चाहते हैं उसे भी निर्दिष्ट कर सकते हैं। माइक्रोसॉफ्ट एक्सेस में प्राइमरी की एक फ़ील्ड या फ़ील्ड का सेट है जिसमे