हालांकि, MySQL में MUL, PRI और UNI क्या है?
से MySQL 5.7 प्रलेखन:
- यदि कुंजी PRI है, तो स्तंभ एक प्राथमिक कुंजी है या एक बहु-स्तंभ PRIMARY कुंजी में स्तंभों में से एक है।
- यदि कुंजी UNI है, तो स्तंभ एक UNIQUE सूचकांक का पहला स्तंभ है। (एक UNIQUE सूचकांक कई NULL मानों की अनुमति देता है, लेकिन आप यह बता सकते हैं कि क्या NULL फ़ील्ड की जाँच करके कॉलम NULL को अनुमति देता है।)
- यदि कुंजी MUL है, तो स्तंभ एक गैर-अनुक्रमणिका का पहला स्तंभ है जिसमें किसी दिए गए मान के कई आवृत्तियों को स्तंभ के भीतर अनुमति दी जाती है।
लाइव उदाहरण
नियंत्रण समूह, इस उदाहरण में न तो PRI, MUL और न ही UNI है:
mysql> create table penguins (foo INT);
Query OK, 0 rows affected (0.01 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
एक स्तंभ के साथ एक तालिका और एक स्तंभ पर एक सूचकांक में एक बहु है:
mysql> create table penguins (foo INT, index(foo));
Query OK, 0 rows affected (0.01 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo | int(11) | YES | MUL | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
स्तंभ के साथ एक तालिका जो एक प्राथमिक कुंजी है, में PRI है
mysql> create table penguins (foo INT primary key);
Query OK, 0 rows affected (0.02 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo | int(11) | NO | PRI | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
एक कॉलम जिसमें एक अद्वितीय कुंजी है, UNI है:
mysql> create table penguins (foo INT unique);
Query OK, 0 rows affected (0.01 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo | int(11) | YES | UNI | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
फू और बार को कवर करने वाले सूचकांक के साथ एक तालिका में केवल फू पर MUL है:
mysql> create table penguins (foo INT, bar INT, index(foo, bar));
Query OK, 0 rows affected (0.01 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo | int(11) | YES | MUL | NULL | |
| bar | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
दो स्तंभों पर दो अलग-अलग इंडेक्स वाली एक तालिका में प्रत्येक के लिए MUL है
mysql> create table penguins (foo INT, bar int, index(foo), index(bar));
Query OK, 0 rows affected (0.01 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo | int(11) | YES | MUL | NULL | |
| bar | int(11) | YES | MUL | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
तीन स्तंभों वाले एक सूचकांक वाली तालिका में पहले MUL है:
mysql> create table penguins (foo INT,
bar INT,
baz INT,
INDEX name (foo, bar, baz));
Query OK, 0 rows affected (0.01 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo | int(11) | YES | MUL | NULL | |
| bar | int(11) | YES | | NULL | |
| baz | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)
एक विदेशी कुंजी के साथ एक तालिका जो किसी अन्य तालिका की प्राथमिक कुंजी का संदर्भ देती है वह है MUL
mysql> create table penguins(id int primary key);
Query OK, 0 rows affected (0.01 sec)
mysql> create table skipper(id int, foreign key(id) references penguins(id));
Query OK, 0 rows affected (0.01 sec)
mysql> desc skipper;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | MUL | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
अपने नियोकार्टेक्स में छड़ी करें और डायल को "फ्रेपे" पर सेट करें।
MUL
केवल उस कॉलम के खिलाफ क्यों नहीं दिखाया जाता है और अन्य सभी स्तंभों पर भी?