🎁 New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

Databases Intermediate

What is Upsert?

A database operation that inserts a new row if it does not exist, or updates the existing row if it does.

Upsert (update + insert) eliminates the need for separate check-then-insert-or-update logic. In PostgreSQL: INSERT INTO table (...) VALUES (...) ON CONFLICT (key) DO UPDATE SET column = EXCLUDED.column. MySQL uses INSERT ... ON DUPLICATE KEY UPDATE.

Upserts are atomic (no race conditions), simpler than alternatives, and efficient for sync operations, bulk imports, and idempotent data loading. The ON CONFLICT clause specifies which constraint determines whether to insert or update.