Oft müssen Sie Daten nur dann in eine Tabelle einfügen, wenn bestimmte Bedingungen erfüllt sind. Während gespeicherte Prozeduren eine Möglichkeit bieten, dies zu erreichen, wollen wir untersuchen, wie Sie bedingte Einfügungen direkt in Ihren SQL-Abfragen durchführen können.
Um Daten bedingt einzufügen, können Sie die folgende Syntax verwenden:
INSERT INTO TABLE SELECT value_for_column1, value_for_column2, ... FROM wherever WHERE your_special_condition
Wenn die Unterabfrage in der WHERE-Klausel keine Zeilen zurückgibt, weil die Bedingung nicht erfüllt ist, erfolgt keine Einfügung.
Beispiel:
Beachten Sie die folgenden Tabellen:
CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT, qty_on_hand INT); CREATE TABLE orders (id INT PRIMARY KEY AUTO_INCREMENT, product_id INT, qty INT);
Um eine Bestellung für 20 Voodoo-Puppen (Produkt-ID 2) aufzugeben, können wir prüfen, ob genügend Lagerbestand vorhanden ist, und die Bestellung unter Vorbehalt wie folgt aufgeben:
INSERT INTO orders (product_id, qty) SELECT 2, 20 WHERE (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
Wenn die Menge auf Hand reicht aus, die Bestellzeile wird erstellt; andernfalls erfolgt die Einfügung nicht. Diese Methode trägt dazu bei, Parallelitätsprobleme zu mindern, indem die Lagerverfügbarkeit überprüft und die Einfügung in einer einzigen Transaktion ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten basierend auf bestimmten Bedingungen bedingt in eine MySQL-Tabelle einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!