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

क्या होगा यदि मैं एक ही कॉलम पर एक से अधिक बार के लिए एक अद्वितीय बाधा जोड़ दूं?


जब हम एक ही कॉलम पर एक से अधिक बार UNIQUE बाधा जोड़ेंगे तो MySQL उस कॉलम पर कई बार इंडेक्स बनाएगा, हमने UNIQUE बाधा को जोड़ा है।

उदाहरण

मान लीजिए कि हमारे पास 'कर्मचारी' तालिका है जिसमें हमारे पास 'एम्पिड' कॉलम पर अद्वितीय बाधा है। इसे निम्न क्वेरी के रूप में चेक किया जा सकता है -

mysql> Describe employee;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| empid      | int(11)     | YES  | UNI | NULL    |       |
| first_name | varchar(20) | YES  |     | NULL    |       |
| last_name  | varchar(20) | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.12 sec)

अब, जब हम SHOW INDEX क्वेरी चलाते हैं, तो यह इंडेक्स का नाम देता है, केवल एक इंडेक्स, कॉलम 'एम्पिड' पर बनाया गया है।

mysql> Show index from employee\G;
*************************** 1. row ***************************
        Table: employee
   Non_unique: 0
     Key_name: empid
 Seq_in_index: 1
  Column_name: empid
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment:
Index_comment:
1 row in set (0.00 sec)

निम्नलिखित क्वेरी की मदद से हमने उसी कॉलम 'एम्पिड' पर एक और UNIQUE बाधा जोड़ी -

mysql> Alter table employee ADD UNIQUE(empid);
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0

अब, जब हम SHOW INDEX क्वेरी चलाते हैं, तो यह इंडेक्स का नाम देता है, दो इंडेक्स 'empid' और 'empid_2', कॉलम 'empid' पर बनाए गए हैं।

mysql> Show index from employee12\G;
*************************** 1. row ***************************
        Table: employee
   Non_unique: 0
     Key_name: empid
 Seq_in_index: 1
  Column_name: empid
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment:
Index_comment:
*************************** 2. row ***************************
        Table: employee
   Non_unique: 0
     Key_name: empid_2
 Seq_in_index: 1
  Column_name: empid
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment:
Index_comment:
2 rows in set (0.00 sec)

निम्नलिखित क्वेरी की मदद से हमने उसी कॉलम 'एम्पिड' पर एक और UNIQUE बाधा जोड़ी -

mysql> Alter table employee ADD UNIQUE(empid);
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0

अब, जब हम SHOW INDEX क्वेरी चलाते हैं, तो यह इंडेक्स का नाम देता है, तीन इंडेक्स 'empid' और 'empid_2', 'empid_3' कॉलम 'empid' पर बनाए जाते हैं।

mysql> Alter table employee ADD UNIQUE(empid);
Query OK, 0 rows affected (0.30 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> Show index from employee\G;
*************************** 1. row ***************************
        Table: employee
   Non_unique: 0
     Key_name: empid
 Seq_in_index: 1
  Column_name: empid
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment:
Index_comment:
*************************** 2. row ***************************
        Table: employee
   Non_unique: 0
     Key_name: empid_2
 Seq_in_index: 1
  Column_name: empid
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment:
Index_comment:
*************************** 3. row ***************************
        Table: employee
   Non_unique: 0
     Key_name: empid_3
 Seq_in_index: 1
  Column_name: empid
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment:
Index_comment:
3 rows in set (0.00 sec)

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


  1. MySQL में एक ही समय में एकाधिक डेटा इनपुट?

    निम्नलिखित वाक्य रचना है - अपनेTableName मानों में डालें(yourValue1,yourValue2,.....N),(yourValue1,yourValue2,.....N),(yourValue1,yourValue2,.....N),(yourValue1,yourValue2 ,.....एन),...एन आइए एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.91 सेकंड) इंसर्ट कमांड की मदद से टेबल में कुछ रिकॉ

  1. क्या होता है यदि हम एक सी प्रोग्राम में दो बार हेडर फाइल शामिल करते हैं?

    सी हेडर फाइलों में कुछ पूर्वनिर्धारित कार्य शामिल हैं। उदाहरण के लिए, प्रिंटफ () और स्कैनफ () फ़ंक्शन को stdio.h हेडर फ़ाइल में परिभाषित किया गया है। सी में प्रत्येक हेडर फाइलों में प्रोग्राम को समझने में आसान बनाने के लिए अलग-अलग पूर्वनिर्धारित कार्य होते हैं। जब एक सी प्रोग्राम में दो बार हे

  1. सी # में सूची को सॉर्ट करने की विधि क्या है?

    C# में एक सूची को सॉर्ट करें, सॉर्ट () विधि का उपयोग करें। आइए पहले एक सूची बनाएं - List<string> myList = new List<string>(); अब तत्व जोड़ें - myList.Add("Audi"); myList.Add("BMW"); myList.Add("Chevrolet"); myList.Add("Hyundai"); सूची को सॉर्ट क