Drei Möglichkeiten zum Hinzufügen: 1. Verwenden Sie zum Hinzufügen die Anweisung „CREATE INDEX“. Die Syntax lautet „CREATE UNIQUE INDEX index name ON table name (column name list);“ 2. Beim Erstellen einer Tabelle lautet die Syntax „CREATE TABLE Tabellenname (. .. UNIQUE KEY (Spaltennamenliste) );“; 3. Beim Ändern der Tabelle wurde die Syntax „ALTER TABLE Tabellenname ADD CONSTRAINT Indexname UNIQUE KEY (Spaltennamenliste)“ hinzugefügt.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
MySQL Unique Index (UNIQUE)
Um eindeutige Werte für eine oder mehrere Spalten zu erzwingen, wird normalerweise eine PRIMARY KEY-Einschränkung verwendet. Allerdings kann jede Tabelle nur einen Primärschlüssel haben. Daher können Sie keine Primärschlüsseleinschränkungen verwenden, wenn Sie mehrere Spalten oder eine Reihe von Spalten mit eindeutigen Werten einbeziehen möchten.
Glücklicherweise bietet MySQL einen weiteren Index namens UNIQUE-Index, mit dem Sie erzwingen können, dass Werte für eine oder mehrere Spalten eindeutig sind. Im Gegensatz zu PRIMARY KEY-Indizes kann UNIQUE mehrere Indizes pro Tabelle haben.
Um einen UNIQUE-Index zu erstellen, verwenden Sie den folgenden <span style="background-color: rgb(255, 255, 255); color: rgb(68, 68, 68); Font-family: " helvetica neue microsoft yahei arial sans-serif>CREATE INDEX<code><span style="background-color: rgb(255, 255, 255); color: rgb(68, 68, 68); font-family: " helvetica neue yahei arial sans-serif>CREATE INDEX</span>
Anweisung:
CREATE UNIQUE INDEX 索引名 ON 表名(列名1,列名2,...);
Eine andere Möglichkeit, die Eindeutigkeit von Werten in einer oder mehreren Spalten zu erzwingen, ist die Verwendung von UNIQUE Einschränkungen.
Wenn Sie eine UNIQUE-Einschränkung erstellen, erstellt MySQL im Hintergrund den Index.
Die folgenden Anweisungen veranschaulichen, wie man beim Erstellen einer Tabelle eine eindeutige Einschränkung erstellt.
CREATE TABLE 表名( ... UNIQUE KEY(列名1,列名2,...) );
Sie können auch einen eindeutigen Index (UNIQUE) zu einer vorhandenen Tabelle hinzufügen, indem Sie die ALTER TABLE-Anweisung verwenden.
ALTER TABLE 表名 ADD CONSTRAINT 索引名 UNIQUE KEY(列名1,列名2,...);
MySQL UNIQUE-Indexbeispiel
Angenommen, Sie möchten Kontakte in Ihrer Anwendung verwalten. Sie möchten außerdem, dass die E-Mail-Adresse für jeden Kontakt in der Kontakttabelle eindeutig ist.
Um diese Regel durchzusetzen, erstellen Sie eine eindeutige Einschränkung in der CREATE TABLE-Anweisung wie folgt:
CREATE TABLE IF NOT EXISTS contacts ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, phone VARCHAR(15) NOT NULL, email VARCHAR(100) NOT NULL, UNIQUE KEY unique_email (email) );
Wenn Sie die SHOW INDEXES-Anweisung verwenden, werden Sie sehen, dass MySQL UNIQUE einen Index für die E-Mail-Spalte erstellt.
SHOW INDEXES FROM contacts;
Lassen Sie uns eine Zeile in die Kontakttabelle einfügen.
INSERT INTO contacts(first_name,last_name,phone,email) VALUES('John','Doe','(408)-999-9765','john.doe@mysqltutorial.org');
Wenn Sie nun versuchen, die Zeile einzufügen, in der john.doe@mysqltutorial.org ihre E-Mail-Adresse hat, erhalten Sie eine Fehlermeldung.
INSERT INTO contacts(first_name,last_name,phone,email) VALUES('Johny','Doe','(408)-999-4321','john.doe@mysqltutorial.org');
ERROR 1062 (23000): Duplicate entry 'john.doe@mysqltutorial.org' for key 'unique_email'
Angenommen, Sie möchten, dass die Kombination aus Vorname, Nachname und Telefonnummer auch unter den Kontakten eindeutig ist. In diesem Fall können Sie mit der CREATE INDEX-Anweisung UNIQUE Indizes für diese Spalten erstellen, wie unten gezeigt:
CREATE UNIQUE INDEX idx_name_phone ON contacts(first_name,last_name,phone);
Fügen Sie die folgende Zeile zu Kontakten hinzu, da das Kombinieren von Tabellen zu einem Fehler führt. Vorname, Nachname und Telefon sind bereits vorhanden.
INSERT INTO contacts(first_name,last_name,phone,email) VALUES('john','doe','(408)-999-9765','john.d@mysqltutorial.org');
【Verwandte Empfehlungen: MySQL-Video-Tutorial】
Das obige ist der detaillierte Inhalt vonSo fügen Sie einen eindeutigen Index in MySQL hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!