DatriseETL com IA

Ferramenta gratuita

Gerador de SQL upsert / MERGE

Cada destino escreve "inserir ou atualizar" de um jeito, e quase todas as diferenças mordem às 3 da manhã: um MERGE que falha por linhas duplicadas na origem, um ON CONFLICT sem índice correspondente, um DELETE no Redshift que deixa linhas fantasma. Escolha o destino, nomeie tabela, chave e colunas, e receba a instrução correta para aquele motor.

As instruções vêm dos perfis de carga que a Datrise usa para entregar entidades de CRM em cada destino, incluindo a guarda por marca d'água que impede uma linha antiga de sobrescrever uma mais nova. Nada do que você digita sai do navegador; o link de compartilhamento codifica o formulário na URL.

Gere a instrução

A URL é atualizada enquanto você digita; compartilhe para entregar o formulário exato.

Instrução · INSERT … ON CONFLICT DO UPDATE

INSERT INTO "deals" ("id", "name", "stage", "amount", "owner_id", "updated_at")
SELECT "id", "name", "stage", "amount", "owner_id", "updated_at"
FROM "deals_staging"
ON CONFLICT ("id") DO UPDATE SET
  "name" = EXCLUDED."name",
  "stage" = EXCLUDED."stage",
  "amount" = EXCLUDED."amount",
  "owner_id" = EXCLUDED."owner_id",
  "updated_at" = EXCLUDED."updated_at"
WHERE "deals"."updated_at" IS NULL
   OR "deals"."updated_at" < EXCLUDED."updated_at";

Como cada destino faz upsert

DestinoInstruçãoMecânica
PostgreSQLSintaxe e armadilhasINSERT … ON CONFLICT DO UPDATEuma marca d'água sobre o updated-at de cada entidade, aplicada com INSERT … ON CONFLICT DO UPDATE
MySQLSintaxe e armadilhasINSERT … ON DUPLICATE KEY UPDATEuma marca d'água sobre updated-at, aplicada com INSERT … ON DUPLICATE KEY UPDATE
Microsoft SQL ServerSintaxe e armadilhasMERGE … WITH (HOLDLOCK)uma marca d'água sobre updated-at, aplicada com uma instrução MERGE
Oracle DatabaseSintaxe e armadilhasMERGE INTO … USINGuma marca d'água sobre updated-at, aplicada com MERGE INTO
SnowflakeSintaxe e armadilhasMERGE INTO … QUALIFY-deduped USINGcargas em staging mescladas por id estável com MERGE, de modo que os créditos escalam com o volume de alterações, não com o tamanho da tabela
Google BigQuerySintaxe e armadilhasMERGE with partition-pruned targetacrescenta a uma tabela de staging e depois faz MERGE por id estável na tabela particionada de destino
Amazon RedshiftSintaxe e armadilhasDELETE … USING + INSERT (staging pattern)COPY a partir de arquivos em staging e depois um merge de deletar-e-inserir por id estável
Databricks SQL WarehouseSintaxe e armadilhasDelta Lake MERGE INTOum MERGE do Delta por id estável, com histórico de alterações disponível via time travel
ClickHouseSintaxe e armadilhasINSERT into ReplacingMergeTree + FINALinsere em um ReplacingMergeTree com chave de id estável, de modo que a última versão vence no merge
DuckDBSintaxe e armadilhasINSERT OR REPLACE / ON CONFLICT DO UPDATEreescreve as entidades alteradas no banco local (ou em Parquet) a cada execução
Amazon AthenaSintaxe e armadilhasMERGE INTO (Iceberg table, engine v3)grava novas partições Parquet e as registra no Glue Data Catalog
Amazon S3 Data LakeSintaxe e armadilhasappend partition + latest-version viewgrava novas partições por data e compacta arquivos pequenos de forma agendada
Azure Data Lake StorageSintaxe e armadilhasappend partition + latest-version viewgrava novas partições por data no container e compacta de forma agendada
Azure SynapseSintaxe e armadilhasMERGE (dedicated SQL pool)COPY para staging e depois um MERGE por id estável
AirtableSintaxe e armadilhasPATCH /records with performUpsertupserts de registros pareados por um campo de id estável
MongoDBSintaxe e armadilhasbulkWrite updateOne { upsert: true }upserts por id estável com updateOne(upsert) sobre a chave primária de origem
SupabaseSintaxe e armadilhasINSERT … ON CONFLICT DO UPDATEuma marca d'água sobre updated-at, aplicada com INSERT … ON CONFLICT DO UPDATE
NeonSintaxe e armadilhasINSERT … ON CONFLICT DO UPDATEuma marca d'água sobre updated-at, aplicada com INSERT … ON CONFLICT DO UPDATE
PlanetScaleSintaxe e armadilhasINSERT … ON DUPLICATE KEY UPDATEuma marca d'água sobre updated-at, aplicada com INSERT … ON DUPLICATE KEY UPDATE
Amazon DynamoDBSintaxe e armadilhasPutItem with ConditionExpressionPutItem/UpdateItem com uma chave de partição derivada do id da entidade

Pule a escrita do merge

A Datrise entrega entidades de CRM e SaaS em cada destino acima com exatamente esta mecânica, uma marca d'água sobre updated-at e colunas tipadas, então a instrução que você acabou de gerar é a que roda por você. Entre na lista de espera para acesso antecipado.

Explorar o catálogo de integrações