Heim Datenbank MySQL-Tutorial So fügen Sie einen eindeutigen Index in MySQL hinzu

So fügen Sie einen eindeutigen Index in MySQL hinzu

Jun 20, 2022 pm 06:50 PM
mysql

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!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen May 08, 2024 am 10:24 AM

PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen

Wie optimiert man die MySQL-Abfrageleistung in PHP? Wie optimiert man die MySQL-Abfrageleistung in PHP? Jun 03, 2024 pm 08:11 PM

Wie optimiert man die MySQL-Abfrageleistung in PHP?

Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Jun 03, 2024 pm 12:19 PM

Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP?

Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Jun 02, 2024 pm 02:26 PM

Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein?

Welche Anwendungsszenarien gibt es für Java-Aufzählungstypen in Datenbanken? Welche Anwendungsszenarien gibt es für Java-Aufzählungstypen in Datenbanken? May 05, 2024 am 09:06 AM

Welche Anwendungsszenarien gibt es für Java-Aufzählungstypen in Datenbanken?

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 Dec 09, 2024 am 11:42 AM

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4

Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Jun 02, 2024 pm 02:13 PM

Wie verwende ich gespeicherte MySQL-Prozeduren in PHP?

Strategien zur Leistungsoptimierung für PHP-Array-Paging Strategien zur Leistungsoptimierung für PHP-Array-Paging May 02, 2024 am 09:27 AM

Strategien zur Leistungsoptimierung für PHP-Array-Paging

See all articles