Glossar · Engineering

Upsert (Einfügen oder Aktualisieren)

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.

Upsert (Einfügen oder Aktualisieren) in deinem Projekt?

Wir bauen damit,
jeden Tag.

Wenn du Upsert in einem konkreten Workflow brauchst, wir haben das wahrscheinlich schon gebaut.

Erstgespräch Alle Begriffe