Um Daten automatisch entweder in die Tabelle einzufügen oder upzudaten, können Sie den MERGE Befehl von Oracle nutzen. Im folgenden PHP-Beispiel wird die Nutzung verdeutlicht. Dabei ist zusätzlich eine automatische Löschung des Datensatzes eingebaut, wenn kein Benutzername übergeben wurde (Erklärung s.u.):
foreach ($users as $id => $username) { if (empty($username)) $sql = "DELETE FROM users WHERE id = $id"; else { $sql = "MERGE INTO users U USING dual ON (dual.dummy is not null and U.id = $id) WHEN MATCHED THEN UPDATE SET name = $username WHEN NOT MATCHED THEN INSERT (id, name) VALUES ($id, $username)"; } }
Als SQL Beispiel:
MERGE INTO users U USING dual ON (dual.dummy is not null and U.id = 10) WHEN MATCHED THEN UPDATE SET name = 'Max Muster' WHEN NOT MATCHED THEN INSERT (id, name) VALUES (10, 'Max Muster')
Das Script sucht nach dem Benutzer mit der ID "10". Wird er gefunden, dann wird der Name per UPDATE geändert. Wird der Eintrag nicht gefunden, dann wird per INSERT ein entsprechender Datensatz angelegt.
Bei Fragen oder Anmerkung schreiben Sie uns gerne einen Kommentar.
Wir freuen uns auch über Einträge, wenn Ihnen dieser Artikel half.