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

MySQL में UNIQUE कंस्ट्रेंट से पंक्ति विशिष्टता सुनिश्चित करें

MySQL में UNIQUE कंस्ट्रेंट (इंडेक्स) का उपयोग करके एक या अधिक कॉलम के संयोजन को अद्वितीय (unique) बना सकते हैं, जिससे डुप्लिकेट पंक्तियां रोकी जाती हैं।

सिंटैक्स

-- टेबल बनाते समय
CREATE TABLE टेबल_नाम (
    कॉलम1 टाइप,
    कॉलम2 टाइप,
    UNIQUE (कॉलम1, कॉलम2, ...)
);

-- मौजूदा टेबल पर
ALTER TABLE टेबल_नाम
ADD UNIQUE INDEX इंडेक्स_नाम (कॉलम1, कॉलम2, ...);

उदाहरण: (id, Name, Age) संयोजन यूनिक

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1580 (
    -> id INT,
    -> Name VARCHAR(20),
    -> Age INT
    -> );

2. यूनिक इंडेक्स जोड़ें

mysql> ALTER TABLE DemoTable1580
    -> ADD UNIQUE INDEX (id, Name, Age);

3. डेटा डालें

mysql> INSERT INTO DemoTable1580 VALUES(101, 'Chris', 21);  -- OK
mysql> INSERT INTO DemoTable1580 VALUES(102, 'Chris', 21);  -- OK (id अलग)
mysql> INSERT INTO DemoTable1580 VALUES(102, 'David', 21);  -- OK (Name अलग)
mysql> INSERT INTO DemoTable1580 VALUES(101, 'Chris', 21);  -- ERROR! डुप्लिकेट
ERROR 1062 (23000): Duplicate entry '101-Chris-21' for key 'id'

4. अंतिम डेटा

mysql> SELECT * FROM DemoTable1580;
+------+-------+------+
| id   | Name  | Age  |
+------+-------+------+
| 101  | Chris | 21   |
| 102  | Chris | 21   |
| 102  | David | 21   |
+------+-------+------+

UNIQUE कंस्ट्रेंट प्रकार

प्रकारसिंटैक्सविवरण
कॉलम-स्तरcol INT UNIQUEएकल कॉलम
टेबल-स्तरUNIQUE (col1, col2)संयुक्त (composite)
नामित इंडेक्सCONSTRAINT uk_name UNIQUE (col1, col2)नामित, प्रबंधन आसान

PRIMARY KEY vs UNIQUE

  • PRIMARY KEY: एक प्रति टेबल, NOT NULL अंतर्निहित, क्लस्टर्ड इंडेक्स (InnoDB)
  • UNIQUE: एकाधिक संभव, NULL अनुमत (एकाधिक NULL), सेकेंडरी इंडेक्स

NULL और UNIQUE

MySQL में UNIQUE कंस्ट्रेंट एकाधिक NULL मान अनुमति देता है (प्रत्येक NULL को अलग माना जाता है)।

  1. - MySQL में टाइप हो रही कमांड को कैसे कैंसिल करें?

    यदि आप कोई कमांड टाइप कर रहे हैं और उसे निष्पादित नहीं करना चाहते, तो \c (क्लियर) विकल्प का उपयोग करके वर्तमान इनपुट साफ़ कर सकते हैं। उदाहरण: क्या होता है: आप Select * टाइप करते हैं दूसरी लाइन पर from टाइप करते हैं तीसरी लाइन पर \c टाइप करते हैं MySQL वर्तमान इनपुट बफर साफ़ करत

  1. - MySQL SELECT क्वेरी: किसी टेबल से उन रो को चुनें जो दूसरी टेबल में नहीं हैं

    हमारे उदाहरण के लिए, हम दो टेबल बनाएंगे और नेचुरल लेफ्ट जॉइन लागू करके उन रो को प्राप्त करेंगे जो पहली टेबल में हैं लेकिन दूसरी में नहीं। पहली टेबल बनाना। mysql> create table FirstTableDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.48 sec) पहली ट

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर