Heim > Datenbank > MySQL-Tutorial > Hauptteil

So fügen Sie einen eindeutigen Index in MySQL hinzu

青灯夜游
Freigeben: 2022-06-20 18:50:20
Original
21125 Leute haben es durchsucht

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.

So fügen Sie einen eindeutigen Index in MySQL hinzu

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,...);
Nach dem Login kopieren

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,...) 
);
Nach dem Login kopieren

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,...);
Nach dem Login kopieren

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)
);
Nach dem Login kopieren

So fügen Sie einen eindeutigen Index in MySQL hinzu

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;
Nach dem Login kopieren

So fügen Sie einen eindeutigen Index in MySQL hinzu

Lassen Sie uns eine Zeile in die Kontakttabelle einfügen.

INSERT INTO contacts(first_name,last_name,phone,email)
VALUES(&#39;John&#39;,&#39;Doe&#39;,&#39;(408)-999-9765&#39;,&#39;john.doe@mysqltutorial.org&#39;);
Nach dem Login kopieren

So fügen Sie einen eindeutigen Index in MySQL hinzu

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(&#39;Johny&#39;,&#39;Doe&#39;,&#39;(408)-999-4321&#39;,&#39;john.doe@mysqltutorial.org&#39;);
Nach dem Login kopieren
ERROR 1062 (23000): Duplicate entry &#39;john.doe@mysqltutorial.org&#39; for key &#39;unique_email&#39;
Nach dem Login kopieren

So fügen Sie einen eindeutigen Index in MySQL hinzu

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);
Nach dem Login kopieren

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(&#39;john&#39;,&#39;doe&#39;,&#39;(408)-999-9765&#39;,&#39;john.d@mysqltutorial.org&#39;);
Nach dem Login kopieren
rrree

【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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage