Léxico de TI › Bancos de dados › MERGE (SQL)

MERGE (SQL)

Bancos de dados Svenska → Atualizado: 2026-09-30

Comando padrão do SQL que faz upsert e delete de uma vez: MERGE INTO destino USING origem ON ... WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT. Padronizado desde o SQL:2003.

Está no PostgreSQL 15+ (2022), Oracle, SQL Server e MySQL 8+. O caso de uso típico é sincronizar um conjunto grande vindo de fora (importação de CSV, lote de replicação) com uma única instrução, em vez de um laço de INSERT, UPDATE e DELETE. Com WHEN NOT MATCHED BY SOURCE dá para tratar linhas do destino que não existem na origem (apagar ou marcar como obsoletas). Comparado ao INSERT ... ON CONFLICT do Postgres, o MERGE é mais flexível, pois suporta delete, enquanto o ON CONFLICT é mais simples para um upsert puro. É otimizado para operações em lote e é clássico em ETL de data warehouse.

← Voltar ao léxico