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
Freigeben: 2024-12-13 05:40:13
Original
242 Leute haben es durchsucht

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
);
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage