MySQL のMUL
、PRI
、の違いは何ですか?UNI
次のコマンドを使用して、MySQL クエリを実行しています:
desc mytable;
フィールドの 1 つはMUL
キーとして表示され、他のフィールドはUNI
またはとして表示されますPRI
。
PRI
キーが の場合、そのキーに関連付けられるレコードはテーブルごとに 1 つだけであることはわかっています。キーが の場合MUL
、関連付けられるレコードが複数ある可能性があるということですか?
の応答は次のとおりですmytable
。
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| courseid | int(11) | YES | MUL | NULL | |
| dept | char(3) | YES | | NULL | |
| coursenum | char(4) | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
ベストアンサー1
DESCRIBE <table>;
これは実際には次のショートカットです:
SHOW COLUMNS FROM <table>;
いずれの場合でも、「Key」属性には 3 つの値が可能です。
PRI
UNI
MUL
PRI
との意味はUNI
非常に明確です。
PRI
=> 主キーUNI
=> ユニークキー
3番目の可能性MUL
である、(あなたが尋ねた)は、基本的に主キーでもユニークキーでもないインデックスです。名前は「複数」から来ており、同じ値が複数回出現することが許可されています。MySQL ドキュメント:
Key
の場合MUL
、列は、列内で特定の値が複数回出現することが許可される非一意インデックスの最初の列です。
最後にもう一つ注意点があります:
テーブルの特定の列に複数のキー値が適用される場合、キーには、、、の順序で最も優先順位の高い値が表示されます
PRI
。UNI
MUL
一般的に、MySQL のドキュメントは非常に優れています。疑問がある場合は、チェックしてみてください。