Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Schlüssel, MUL vs. PRI vs. UNI

DESCRIBE <table>; 

Dies ist eigentlich eine Abkürzung für:

SHOW COLUMNS FROM <table>;

In jedem Fall gibt es drei mögliche Werte für das "Key"-Attribut:

  1. PRI
  2. UNI
  3. MUL

Die Bedeutung von PRI und UNI sind ganz klar:

  • PRI => Primärschlüssel
  • UNI => eindeutiger Schlüssel

Die dritte Möglichkeit, MUL , (nach dem Sie gefragt haben) ist im Grunde ein Index, der weder ein Primärschlüssel noch ein eindeutiger Schlüssel ist. Der Name kommt von „multiple“, weil mehrere Vorkommen desselben Werts erlaubt sind. Direkt aus der MySQL-Dokumentation :

Wenn Key ist MUL , ist die Spalte die erste Spalte eines nicht eindeutigen Indexes, in dem mehrere Vorkommen eines bestimmten Werts innerhalb der Spalte zulässig sind.

Es gibt auch eine letzte Einschränkung:

Wenn mehr als einer der Key-Werte auf eine bestimmte Spalte einer Tabelle zutrifft, zeigt Key den Wert mit der höchsten Priorität in der Reihenfolge PRI an , UNI , MUL .

Generell ist die MySQL-Dokumentation recht gut. Im Zweifelsfall einfach ausprobieren!