Ein eindeutiger Schlüssel in MySQL ist ein einzelnes Feld oder eine Kombination von Feldern, die sicherstellen, dass alle in der Spalte gespeicherten Werte eindeutig sind. Das bedeutet, dass eine Spalte nicht speichern kann doppelte Werte . Beispielsweise sollten die E-Mail-Adressen und Rollennummern der Studenten in der Tabelle „student_info“ oder die Kontaktnummern der Mitarbeiter in der Tabelle „Employee“ eindeutig sein.
Java-Binärbaum
Mit MySQL können wir mehr als eine Spalte mit der UNIQUE-Einschränkung in einer Tabelle verwenden. Es kann a akzeptieren Null Wert, aber MySQL erlaubte nur einen Nullwert pro Spalte. Es sorgt dafür Integrität der Spalte oder Spaltengruppe, um verschiedene Werte in einer Tabelle zu speichern.
Anforderungen an einen eindeutigen Schlüssel
- Dies ist nützlich, um zu verhindern, dass die beiden Datensätze identische Werte in der Spalte speichern.
- Es speichert nur eindeutige Werte, die die Integrität und Zuverlässigkeit der Datenbank für den organisierten Zugriff auf die Informationen gewährleisten.
- Es funktioniert auch mit einem Fremdschlüssel, um die Einzigartigkeit einer Tabelle zu bewahren.
- Es kann einen Nullwert in der Tabelle enthalten.
Syntax
Die folgende Syntax wird zum Erstellen eines eindeutigen Schlüssels verwendet MySQL .
Wenn wir nur eine eindeutige Schlüsselspalte in einer Tabelle erstellen möchten, verwenden Sie die folgende Syntax:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Wenn wir mehr als eine eindeutige Schlüsselspalte in einer Tabelle erstellen möchten, verwenden Sie die folgende Syntax:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Wenn wir den Namen für eine eindeutige Einschränkung nicht angegeben haben, generiert MySQL automatisch einen Namen für diese Spalte. Daher wird empfohlen, beim Erstellen einer Tabelle den Einschränkungsnamen zu verwenden.
Parametererklärung
In der folgenden Tabelle werden die Parameter im Detail erläutert.
Parametername | Beschreibungen |
---|---|
Tabellenname | Es ist der Name der Tabelle, die wir erstellen werden. |
Spalte1, Spalte2 | Es sind die Spaltennamen, die in der Tabelle enthalten sind. |
Einschränkungsname | Es ist der Name des eindeutigen Schlüssels. |
Spaltenname(n) | Es sind die Spaltennamen, die als eindeutiger Schlüssel dienen. |
Einzigartiges Schlüsselbeispiel
Das folgende Beispiel erklärt, wie ein eindeutiger Schlüssel in MySQL verwendet wird.
Diese Anweisung erstellt eine Tabelle ' Student2 ' mit einer UNIQUE-Einschränkung:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
Führen Sie als Nächstes die unten aufgeführten Einfügeabfragen aus, um zu verstehen, wie es funktioniert:
mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Peter', '[email protected]', 22, 'Texas'), (2, 'Suzi', '[email protected]', 24, 'California'), (3, 'Joseph', '[email protected]', 23, 'Alaska'); mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Stephen', '[email protected]', 22, 'Texas');
Ausgabe
In der folgenden Ausgabe können wir das erste sehen INSERT-Abfrage wird korrekt ausgeführt, aber die zweite Anweisung schlägt fehl und gibt einen Fehler aus, der besagt: Doppelter Eintrag „1“ für Schlüssel Stud_ID.
Wenn Sie den eindeutigen Schlüssel definieren möchten mehrere Spalten , verwenden Sie die Abfrage wie folgt:
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25), CONSTRAINT uc_rollno_email Unique(Roll_No, Email) );
In der Ausgabe können wir sehen, dass der eindeutige Schlüsselwert zwei Spalten enthält Rollen_Nr Und Email .
Um dies zu überprüfen, führen Sie die folgende Anweisung aus:
mysql> SHOW INDEX FROM Student3;
Hier können wir sehen, dass die eindeutige Einschränkung erfolgreich zur Tabelle hinzugefügt wurde:
DROP Eindeutiger Schlüssel
Mit der ALTER TABLE-Anweisung können wir auch den eindeutigen Schlüssel aus der Tabelle löschen. Die folgende Syntax wird zum Löschen des eindeutigen Schlüssels verwendet:
ALTER TABLE table_name DROP INDEX constraint_name;
In der obigen Syntax ist die Tabellenname ist der Name der Tabelle, die wir ändern möchten, und Einschränkungsname ist der Name des eindeutigen Schlüssels, den wir entfernen werden.
Beispiel
Diese Anweisung entfernt die uc_rollno_email Einschränkung dauerhaft aus der Tabelle entfernen.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Dazu können wir die SHOW INDEX-Anweisung ausführen.
Eindeutiger Schlüssel mithilfe der ALTER TABLE-Anweisung
Mit dieser Anweisung können wir die Änderung an der vorhandenen Tabelle vornehmen. Manchmal möchten wir der Spalte einer vorhandenen Tabelle einen eindeutigen Schlüssel hinzufügen. Anschließend wird mit dieser Anweisung der eindeutige Schlüssel für diese Spalte hinzugefügt.
Syntax
Im Folgenden finden Sie die Syntax der ALTER TABLE-Anweisung zum Hinzufügen eines eindeutigen Schlüssels:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Beispiel
Diese Anweisung erstellt eine Tabelle ' Studenten3 ', die keine eindeutige Schlüsselspalte in der Tabellendefinition haben.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
Wenn wir nach dem Erstellen einer Tabelle einen eindeutigen Schlüssel zu dieser Tabelle hinzufügen möchten, müssen wir die ALTER TABLE-Anweisung wie folgt ausführen:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Wir können die Ausgabe sehen, in der beide Anweisungen erfolgreich ausgeführt wurden.
Um dies zu überprüfen, führen Sie die folgende Anweisung aus:
mysql> SHOW INDEX FROM Student3;
Hier können wir sehen, dass die eindeutige Einschränkung erfolgreich zur Tabelle hinzugefügt wurde: