Glossar · Engineering
Eine Datenbankoperation, die einen Datensatz in einem atomaren Schritt anlegt, falls er fehlt, und ihn sonst aktualisiert.
Definition
Upsert verbindet INSERT und UPDATE in einer Operation. Du gibst einen Konfliktschlüssel an (etwa eine E-Mail-Adresse oder eine externe ID). Existiert bereits eine Zeile mit diesem Schlüssel, werden ihre Felder aktualisiert, sonst wird eine neue Zeile angelegt. In Postgres schreibst du das als INSERT ... ON CONFLICT ... DO UPDATE.
Für Integrationen ist das der Standardweg, um Daten idempotent zu synchronisieren. Liefert ein Webhook denselben Lead zweimal oder wird ein Sync-Lauf wiederholt, entsteht kein Duplikat, weil der Konfliktschlüssel den vorhandenen Datensatz trifft. Ohne Upsert bräuchtest du erst ein SELECT und dann eine Fallunterscheidung im Code, was bei parallelen Läufen leicht zu Race Conditions und doppelten Zeilen führt.
So nutzen wir das bei adsbird
Der Meta-Instant-Forms-Sync upsertet Leads per E-Mail-Schlüssel in Supabase, sodass ein erneut ausgeliefertes Formular denselben Datensatz aktualisiert statt einen doppelten anzulegen.
Verwandte Begriffe
Wo wir Upsert im Detail erklären
Upsert (Einfügen oder Aktualisieren) in deinem Projekt?
Wenn du Upsert in einem konkreten Workflow brauchst, wir haben das wahrscheinlich schon gebaut.