Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie mithilfe der MySQL-Primärschlüsseleinschränkung den Primärschlüssel für eine Tabelle erstellen.
Einführung in den MySQL-Primärschlüssel
Ein Primärschlüssel ist eine Spalte oder eine Reihe von Spalten, die jede Zeile in der Tabelle eindeutig identifizieren. Der Primärschlüssel folgt diesen Regeln:
- Ein Primärschlüssel muss eindeutige Werte enthalten. Wenn der Primärschlüssel aus mehreren Spalten besteht, muss die Wertekombination in diesen Spalten eindeutig sein.
- Eine Primärschlüsselspalte darf keine
NULL
-Werte haben. Jeder Versuch,NULL
in Primärschlüsselspalten einzufügen oder zu aktualisieren, führt zu einem Fehler. Beachten Sie, dass MySQL den Primärschlüsselspalten implizit eineNOT NULL
-Einschränkung hinzufügt. - Eine Tabelle kann einen und nur einen Primärschlüssel haben.
Weil MySQL schneller arbeitet Bei Ganzzahlen sollte der Datentyp der Primärschlüsselspalte die Ganzzahl sein, z. B. INT,
BIGINT
. Und Sie sollten sicherstellen, dass Wertebereiche vom Typ Integer für den Primärschlüssel ausreichen, um alle möglichen Zeilen in der Tabelle zu speichern.
Eine Primärschlüsselspalte hat häufig die -Attribut, das automatisch eine sequentielle Ganzzahl generiert, wenn Sie eine neue Zeile in die Tabelle einfügen.
Wenn Sie einen Primärschlüssel für eine Tabelle definieren, erstellt MySQL automatisch einen Index mit dem Namen PRIMARY
.
Beispiele für MySQL PRIMARY KEY
Mit der Einschränkung PRIMARY KEY
können Sie einen Primärschlüssel einer Tabelle definieren Wenn Sie eine Tabelle erstellen oder ändern.
1) Definieren Sie eine PRIMARY KEY-Einschränkung in CREATE TABLE.
In der Regel definieren Sie den Primärschlüssel für eine Tabelle in -Anweisung.
Wenn der Primärschlüssel eine Spalte enthält, können Sie die Einschränkung PRIMARY KEY
als Spalteneinschränkung verwenden:
Code language: SQL (Structured Query Language) (sql)
Wenn der Primärschlüssel mehr als eine Spalte enthält, müssen Sie th verwenden e PRIMARY KEY
Einschränkung als Tabelleneinschränkung.
In dieser Syntax trennen Sie Spalten in column_list
durch Kommas ( ,).
Die Tabelleneinschränkung PRIMARY KEY
kann verwendet werden, wenn der Primärschlüssel eine Spalte enthält:
Im folgenden Beispiel wird eine Tabelle mit dem Namen erstellt users
dessen Primärschlüssel die Spalte user_id
ist:
Diese Anweisung erstellt die roles
Tabelle mit der Einschränkung PRIMARY KEY
als Tabelleneinschränkung:
Wenn der Primärschlüssel aus mehreren Spalten besteht, müssen Sie diese am Ende angeben der Anweisung CREATE TABLE
. Sie setzen eine durch Kommas getrennte Liste von Primärschlüsselspalten in Klammern, gefolgt von den Schlüsselwörtern PRIMARY KEY
.
Im folgenden Beispiel wird die user_roles
Tabelle, deren Primärschlüssel aus zwei Spalten besteht: user_id
und role_id
. Es definiert die Einschränkung PRIMARY KEY
als Tabelleneinschränkung:
Beachten Sie, dass die Anweisung auch zwei Fremdschlüsseleinschränkungen erstellt hat.
2) Definieren Sie PRIMARY KEY-Einschränkungen mit ALTER TABLE
Wenn eine Tabelle aus bestimmten Gründen keinen Primärschlüssel hat, können Sie mit der Anweisung ALTER TABLE
einen Primärschlüssel hinzufügen Die Tabelle lautet wie folgt:
Code language: SQL (Structured Query Language) (sql)
Im folgenden Beispiel wird dem Primärschlüssel die Spalte id
hinzugefügt.
Erstellen Sie zunächst die Tabelle pkdemos
ohne Primärschlüssel.
Code language: SQL (Structured Query Language) (sql)
Fügen Sie anschließend eine Primärtabelle hinzu Schlüssel zur Tabelle pkdemos
mit der Anweisung ALTER TABLE
:
Code language: SQL (Structured Query Language) (sql)
Wenn Sie einer Tabelle, die bereits Daten enthält, einen Primärschlüssel hinzufügen. Die Daten in den Spalten, die im Primärschlüssel enthalten sein werden, müssen eindeutig und nicht NULL sein.
PRIMARY KEY vs. UNIQUE KEY vs. KEY
KEY
ist das Synonym für INDEX
. Sie verwenden die KEY
, wenn Sie einen Index für eine Spalte oder einen Satz von Spalten erstellen möchten, der nicht Teil eines Primärschlüssels oder eines eindeutigen Schlüssels ist.
Ein UNIQUE
-Index stellt sicher, dass die Werte in einer Spalte eindeutig sein müssen. Im Gegensatz zum Index PRIMARY
lässt MySQL NULL
-Werte im Index UNIQUE
zu. Darüber hinaus kann eine Tabelle mehrere UNIQUE
-Indizes haben.
Angenommen, email
und username
der Benutzer in der Tabelle users
muss eindeutig sein.Um diese Regeln durchzusetzen, können Sie UNIQUE
-Indizes für die Spalten email
und username
definieren als die folgende Anweisung:
Fügen Sie einen UNIQUE
-Index für die Spalte username
hinzu:
Code language: SQL (Structured Query Language) (sql)
Fügen Sie einen UNIQUE
-Index für die Spalte email
hinzu:
Code language: SQL (Structured Query Language) (sql)
In diesem Lernprogramm haben Sie gelernt, wie Sie einen Primärschlüssel für eine neue Tabelle erstellen oder einer vorhandenen Tabelle einen Primärschlüssel hinzufügen.
- War dieses Tutorial hilfreich?
- JaNein