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!