Heim  >  Artikel  >  Datenbank  >  Eine detaillierte Einführung, wie MySQL UNIQUE verwendet, um das Einfügen nicht doppelter Daten zu erreichen

Eine detaillierte Einführung, wie MySQL UNIQUE verwendet, um das Einfügen nicht doppelter Daten zu erreichen

黄舟
黄舟Original
2017-05-28 09:58:102081Durchsuche

Wenn eine eindeutige Spalte einen Datensatz einfügt, der doppelte Werte für einen UNIQUE-Schlüssel enthält, können wir steuern, wie MySQL mit dieser Situation umgeht: Verwenden Sie das Schlüsselwort IGNORE oder ON DUPLICATE KEY UP Die DATE-Klausel überspringt INSERT, unterbricht Vorgänge oder aktualisiert alte Datensätze auf neue Werte.

SQL UNIQUE Einschränkung

Die UNIQUE-Einschränkung identifiziert jeden Datensatz in einer Datenbanktabelle eindeutig.
Sowohl UNIQUE- als auch PRIMARY KEY-Einschränkungen bieten Eindeutigkeitsgarantien für eine Spalte oder einen Satz von Spalten.
PRIMARY KEY hat automatisch UNIQUE-Einschränkungen definiert.

Bitte beachten Sie, dass jede Tabelle mehrere UNIQUE-Einschränkungen haben kann, es jedoch nur eine PRIMARY KEY-Einschränkung pro Tabelle geben kann.

Das folgende SQL erstellt eine EINZIGARTIGE Einschränkung für die Spalte „Id_P“, wenn die Tabelle „Personen“ erstellt wird:

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  UNIQUE (Id_P)
)

Wenn Sie die EINZIGARTIGE Einschränkung benennen müssen, und Definieren Sie die EINZIGARTIGE Einschränkung für mehrere Spalten. Bitte verwenden Sie die folgende SQL-Syntax:

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)

Wenn Sie nach der Erstellung der Tabelle eine EINZIGARTIGE Einschränkung für die Spalte „Id_P“ erstellen müssen, verwenden Sie bitte die folgende SQL :

ALTER TABLE Persons ADD UNIQUE (Id_P)

Um eine UNIQUE-Einschränkung zu benennen und UNIQUE-Einschränkungen für mehrere Spalten zu definieren, verwenden Sie bitte die folgende SQL-Syntax:

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

Um eine UNIQUE-Einschränkung aufzuheben, verwenden Sie bitte das folgende SQL:

ALTER TABLE Persons DROP INDEX uc_PersonID

Auf diese Weise fordert MySQL jedes Mal auf, dass ein doppelter Datensatz eingefügt wird Fügen Sie beim Einfügen „ignorieren“ hinzu, um ihn zu ignorieren. Jetzt müssen wir, nachdem wir sichergestellt haben, dass keine doppelten Datensätze vorhanden sind, den Einfügevorgang starten, wenn der Datensatz nicht vorhanden ist, und den Aktualisierungsvorgang, wenn er vorhanden ist

Diese Anweisung bedeutet, den Wert einzufügen:
INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...


Wenn in diesem Abschnitt der Datensatz vorhanden ist, führen Sie
INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...)

Das obige ist der detaillierte Inhalt vonEine detaillierte Einführung, wie MySQL UNIQUE verwendet, um das Einfügen nicht doppelter Daten zu erreichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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