Apa perbedaan antara MUL
, PRI
dan UNI
di MySQL?
Saya sedang mengerjakan permintaan MySQL, menggunakan perintah:
desc mytable;
Salah satu bidang ditampilkan sebagai MUL
kunci, yang lain ditampilkan sebagai UNI
atau PRI
.
Saya tahu bahwa jika suatu kunci PRI
, hanya satu catatan per tabel dapat dikaitkan dengan kunci itu. Jika kuncinya adalah MUL
, apakah itu berarti bahwa mungkin ada lebih dari satu catatan terkait?
Inilah tanggapan dari mytable
.
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| courseid | int(11) | YES | MUL | NULL | |
| dept | char(3) | YES | | NULL | |
| coursenum | char(4) | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
MUL
hanya ditampilkan terhadap kolom itu dan tidak semua kolom lainnya juga?Ini sebenarnya jalan pintas untuk:
Bagaimanapun, ada tiga nilai yang mungkin untuk atribut "Kunci":
PRI
UNI
MUL
Arti
PRI
danUNI
cukup jelas:PRI
=> kunci utamaUNI
=> kunci unikKemungkinan ketiga
MUL
,, (yang Anda tanyakan) pada dasarnya adalah indeks yang bukan kunci primer atau kunci unik. Nama ini berasal dari "beberapa" karena beberapa kejadian dengan nilai yang sama diperbolehkan. Langsung dari dokumentasi MySQL :Ada juga peringatan terakhir:
Sebagai catatan umum, dokumentasi MySQL cukup bagus. Jika ragu, periksa!
sumber
MUL
.Walkthough tentang apa itu MUL, PRI dan UNI di MySQL?
Dari dokumentasi MySQL 5.7 :
Contoh Langsung
Grup kontrol, contoh ini tidak memiliki PRI, MUL, atau UNI:
Tabel dengan satu kolom dan indeks pada satu kolom memiliki MUL:
Tabel dengan kolom yang merupakan kunci utama memiliki PRI
Tabel dengan kolom yang merupakan kunci unik memiliki UNI:
Tabel dengan indeks yang mencakup foo dan bar memiliki MUL hanya di foo:
Tabel dengan dua indeks terpisah pada dua kolom memiliki MUL untuk masing-masing
Tabel dengan Indeks yang mencakup tiga kolom memiliki MULA pada yang pertama:
Tabel dengan kunci asing yang merujuk kunci utama tabel lain adalah MUL
Tempelkan itu di neocortex Anda dan atur pemutar ke "frappe".
sumber
Bagi Mul, ini juga merupakan dokumentasi yang bermanfaat bagi saya - http://grokbase.com/t/mysql/mysql/9987k2ew41/key-field-mul-newbie-question
"MUL berarti kunci memungkinkan beberapa baris memiliki nilai yang sama. Artinya, itu bukan kunci UNIque."
Sebagai contoh, katakanlah Anda memiliki dua model, Posting dan Komentar. Posting memiliki hubungan has_many dengan Komentar. Maka masuk akal jika tabel Komentar memiliki kunci MUL (Posting id) karena banyak komentar dapat dikaitkan dengan Posting yang sama.
sumber