Geben Sie eindeutige Einschränkungen für mehrere Spalten in MySQL an

Shraddha Paghdar 20 Juni 2023
Geben Sie eindeutige Einschränkungen für mehrere Spalten in MySQL an

Der heutige Beitrag befasst sich mit den Methoden zum Festlegen eindeutiger Einschränkungen für mehrere Spalten in MySQL.

Geben Sie eindeutige Einschränkungen für mehrere Spalten in MySQL an

Gelegentlich möchten Sie vielleicht sicherstellen, dass jeder Wert in einer Spalte oder einer Sammlung von Spalten unterschiedlich ist.

Beispielsweise sollten sich Benutzer-E-Mail-Adressen in der Mitarbeiterdatenbank oder Kundentelefonnummern in der Kundentabelle unterscheiden. Eine eindeutige Einschränkung wird verwendet, um diese Regel durchzusetzen.

Eine Integritätsbedingung namens UNIQUE stellt sicher, dass jeder Wert in einer Spalte oder einer Kombination von Spalten eindeutig ist. Sowohl eine Tabelleneinschränkung als auch eine Spalteneinschränkung können eindeutige Einschränkungen sein.

Syntax:

CREATE TABLE table_name(
    column_name data_type UNIQUE,
);

In der obigen Syntax enthält die Spaltenspezifikation, für die Sie die Eindeutigkeitsregel auferlegen möchten, das Schlüsselwort UNIQUE. MySQL lehnt die Änderung ab und generiert einen Fehler, wenn Sie einen Wert einfügen oder aktualisieren, der zu einer Duplizierung des Spaltennamens führt.

Spaltenbeschränkungen werden in dieser UNIQUE-Beschränkung verwendet. Außerdem kann es verwendet werden, um die eindeutige Regel für eine einzelne Spalte zu erzwingen.

Die folgende Syntax wird verwendet, um eine UNIQUE-Einschränkung für zwei oder mehr Spalten einzurichten:

Syntax:

CREATE TABLE table_name(
   column_name1 data_type,
   column_name2 data_type,
   UNIQUE(column_name1,column_name2)
);

Der MySQL-Befehl ALTER TABLE kann verwendet werden, um Spalten aus einer Tabelle hinzuzufügen, zu ändern oder zu entfernen/zu löschen. Der Befehl ADD UNIQUE kann eine Eindeutigkeitsbeschränkung hinzufügen, wenn die Spalte bereits ohne eine existiert.

Verwenden Sie die folgende Syntax, um eine eindeutige Einschränkung für zwei oder mehr Spalten zu erstellen.

Syntax:

ALTER TABLE table_name ADD UNIQUE column_name;
ALTER TABLE table_name ADD UNIQUE `index_name`(column_name1, column_name2);

Um das vorherige Konzept besser zu verstehen, betrachten Sie das folgende Beispiel:

CREATE TABLE Employees(
    email varchar(255) UNIQUE,
    first_Name VARCHAR(255),
    last_Name VARCHAR(255)
);
CREATE TABLE EmployeeDepartment(
   email varchar(255),
   department varchar(255),
   UNIQUE(email,department)
);
-- If the Employees table does not have a unique email constraint
ALTER TABLE EmployeeDepartment ADD UNIQUE email;
-- If the EmployeeDepartment table does not have a unique constraint
ALTER TABLE EmployeeDepartment ADD UNIQUE `unique_department_emp`(email,department);

Im ersten vorangegangenen Beispiel haben wir eine Datenbank namens Mitarbeiter mit den Attributen email, Vorname und Nachname erstellt. Wenn Sie einen Wert ändern oder bearbeiten, der Daten in der Spalte email dupliziert, wird ein Fehler generiert.

Wir kennzeichnen eine E-Mail als eindeutige Spalte mit dem Schlüsselwort UNIQUE..

Wie bei der ersten haben wir eine Tabelle EmployeeDepartment erstellt, die die Variablen email und Abteilung enthält. Ein Fehler wird generiert, wenn Sie einen Wert einfügen oder ändern, der Daten in der Spalte E-Mail+Abteilung dupliziert.

Wir verwenden das Schlüsselwort UNIQUE, um die Kombination aus email und Abteilung zu einer eindeutigen Spalte zu machen.

Sie können eine vorhandene Tabelle ändern, indem Sie auf ähnliche Weise eine neue eindeutige Einschränkung hinzufügen.

Führen Sie die obige Codezeile in jedem mit MySQL kompatiblen Browser aus. Es wird das folgende Ergebnis angezeigt:

Query executed successfully.
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

Verwandter Artikel - MySQL Column