Heim > Datenbank > MySQL-Tutorial > Wie stellt man beim Einfügen von Daten in MySQL eindeutige Zeilen sicher?

Wie stellt man beim Einfügen von Daten in MySQL eindeutige Zeilen sicher?

DDD
Freigeben: 2024-12-25 21:27:09
Original
770 Leute haben es durchsucht

How to Ensure Unique Rows When Inserting Data into MySQL?

Bedingte Einfügung in MySQL: Sicherstellung der Eindeutigkeit von Zeilen

MySQL bietet vielseitige Mechanismen für die Dateneinfügung, sodass Sie bedingte Einfügungen implementieren können, die doppelte Zeilen verhindern.

Ein Szenario umfasst eine Tabelle namens x_table mit den Spalten „Instanz“, „Benutzer“ und „Element“, wobei „Instanz“ eindeutig ist. Um eine neue Zeile nur dann in x_table einzufügen, wenn die Kombination aus Benutzer und Element noch nicht vorhanden ist, führen Sie die folgenden Schritte aus:

Verwenden der INSERT...SELECT-Syntax

Wenn Ihre MySQL-Version das Auswählen unterstützt Betrachten Sie beim Einfügen die folgende Abfrage aus anderen Tabellen:

INSERT INTO x_table(instance, user, item)
SELECT 919191, 123, 456
FROM dual
WHERE NOT EXISTS (
    SELECT * FROM x_table
    WHERE user = 123 AND item = 456
);
Nach dem Login kopieren

In dieser Abfrage ist dual eine einzeilige Tabelle, die die Verfügbarkeit einer gültigen Zeile sicherstellt, während NOT Die EXISTS-Bedingung prüft, ob doppelte Zeilen vorhanden sind. Wenn keine Übereinstimmungen gefunden werden, wird die neue Zeile eingefügt.

Erkunden der MERGE-Anweisung

Alternativ bietet die MERGE-Anweisung ein leistungsstarkes Werkzeug für bedingte Einfügungen. Die Syntax lautet wie folgt:

MERGE INTO x_table AS target
USING (
    SELECT 919191 AS instance, 123 AS user, 456 AS item
) AS source
ON (target.user = source.user AND target.item = source.item)
WHEN NOT MATCHED THEN INSERT VALUES (source.instance, source.user, source.item);
Nach dem Login kopieren

In diesem Fall gibt die USING-Klausel die einzufügenden Werte an, während die ON-Klausel die Übereinstimmungskriterien festlegt. Wenn in der Zieltabelle (x_table) keine passenden Zeilen vorhanden sind, wird INSERT ausgeführt.

Das obige ist der detaillierte Inhalt vonWie stellt man beim Einfügen von Daten in MySQL eindeutige Zeilen sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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