TutorialApplies to: Unified engine deployments
Mark or remove target customers that are absent from a complete source snapshot.
WHEN NOT MATCHED BY SOURCE applies to target rows with no matching source row.
It can update or delete those rows. Use it only when the source is a complete
snapshot for the intended scope. A partial change batch omits unchanged
customers too; absence from that batch does not mean that those customers should
be deleted.
Before you start
You need a writable Iceberg catalog with namespace creation, table creation, and
MERGE support. These examples create format-v2 tables in a private namespace.
They use inline data and do not need an external sample dataset.
Choose an unused namespace. The examples use learn_merge_04. Replace it
everywhere if it already exists. In Workbench, select your writable
catalog before running any SQL. Keep that catalog selected throughout the
lesson. Opening an example does not execute it.
Set up the namespace
Run this setup once:
Each example creates a separate table. Run an example’s setup once. To start it
again, remove only that example’s table first, using the cleanup section.
Scripts execute as separate operations; they are not a multi-statement
transaction.
1. Mark customers absent from a complete snapshot
Start with these target rows:
Apply the incoming source below:
Check all rows:
Expect these exact rows, in any display order:
2. Remove customers absent from a complete snapshot
Start with these target rows:
Apply the incoming source below:
Check all rows:
Expect these exact rows, in any display order:
Change one thing
Start the relevant example again from its original target rows. Drop only that
example table, rerun its CREATE TABLE and INSERT statements, then apply the
changed MERGE. Keep the lesson namespace.
Add customer 3 to the source snapshot. Both examples should leave customer 3
present and active. The source values do not update matched target rows because
these examples contain no matched action.
Check the result
Compare every row and field with the expected tables, including unchanged
customers and the number of copies of each key. A Succeeded status alone is not
the result check. Wait for confirmed publication before reading the target.
Clean up
Remove only the private tables created by this lesson:
Continue
Prepare a reliable MERGE source or review the
MERGE SQL reference.Last modified on November 4, 2026