Heim >Datenbank >MySQL-Tutorial >Wie führe ich einen bedingten INSERT in MySQL durch, um eindeutige Zeilen sicherzustellen?

Wie führe ich einen bedingten INSERT in MySQL durch, um eindeutige Zeilen sicherzustellen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-13 05:40:13312Durchsuche

How to Perform a Conditional INSERT in MySQL to Ensure Unique Rows?

Bedingte Einfügung in MySQL: Einfügen nur, wenn eindeutig

MySQL bietet begrenzte Unterstützung für bedingte Einfügungen. In diesem speziellen Fall möchten Sie eine Zeile nur dann in die x_table einfügen, wenn die Kombination aus Benutzer und Element nicht vorhanden ist.

Die INSERT-Anweisung von MySQL erlaubt kein direktes bedingtes Einfügen. Sie können jedoch eine Problemumgehung mithilfe einer Unterabfrage durchführen. Ein Ansatz besteht darin, die NOT EXISTS-Klausel zu verwenden:

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
);

In dieser Abfrage prüft die Unterabfrage mit NOT EXISTS, ob der angegebene Benutzer und das angegebene Element bereits in der x_table vorhanden sind. Ist dies nicht der Fall, wird die neue Zeile eingefügt. Ansonsten passiert nichts.

Eine andere Möglichkeit ist die Verwendung der MERGE-Anweisung, die es ermöglicht, bedingte Einfüge- und Aktualisierungsvorgänge in einer einzigen Anweisung anzugeben. Allerdings wird MERGE in MySQL nur als Erweiterung und nicht als Teil der Kernfunktionalität unterstützt.

Das obige ist der detaillierte Inhalt vonWie führe ich einen bedingten INSERT in MySQL durch, um eindeutige Zeilen sicherzustellen?. 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