IT-lexicon › Databases › MERGE (SQL)

MERGE (SQL)

Databases Svenska → Bijgewerkt: 2026-10-03

SQL-standaardcommando voor upsert en delete in één statement.

MERGE INTO target USING source ON ... WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT. Gestandaardiseerd sinds SQL:2003 en beschikbaar in PostgreSQL 15+ (2022), Oracle, SQL Server en MySQL 8+. Toepassing: een grote dataset synchroniseren vanuit een externe bron (CSV-import, replicatiebatch), met één statement in plaats van een lus met losse INSERT, UPDATE en DELETE.

Met WHEN NOT MATCHED BY SOURCE behandel je rijen in de doeltabel die niet in de bron staan (verwijderen of als verouderd markeren). Ten opzichte van INSERT ... ON CONFLICT in Postgres is MERGE flexibeler (ondersteunt delete), terwijl ON CONFLICT simpeler is voor een pure upsert. MERGE is geoptimaliseerd voor batchwerk en kan parallellisme gebruiken. Klassiek gebruik: ETL in datawarehouses.

← Terug naar het lexicon