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
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
| Destino | Instrução | Mecânica |
|---|---|---|
| PostgreSQLSintaxe e armadilhas | INSERT … ON CONFLICT DO UPDATE | uma marca d'água sobre o updated-at de cada entidade, aplicada com INSERT … ON CONFLICT DO UPDATE |
| MySQLSintaxe e armadilhas | INSERT … ON DUPLICATE KEY UPDATE | uma marca d'água sobre updated-at, aplicada com INSERT … ON DUPLICATE KEY UPDATE |
| Microsoft SQL ServerSintaxe e armadilhas | MERGE … WITH (HOLDLOCK) | uma marca d'água sobre updated-at, aplicada com uma instrução MERGE |
| Oracle DatabaseSintaxe e armadilhas | MERGE INTO … USING | uma marca d'água sobre updated-at, aplicada com MERGE INTO |
| SnowflakeSintaxe e armadilhas | MERGE INTO … QUALIFY-deduped USING | cargas 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 armadilhas | MERGE with partition-pruned target | acrescenta a uma tabela de staging e depois faz MERGE por id estável na tabela particionada de destino |
| Amazon RedshiftSintaxe e armadilhas | DELETE … 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 armadilhas | Delta Lake MERGE INTO | um MERGE do Delta por id estável, com histórico de alterações disponível via time travel |
| ClickHouseSintaxe e armadilhas | INSERT into ReplacingMergeTree + FINAL | insere em um ReplacingMergeTree com chave de id estável, de modo que a última versão vence no merge |
| DuckDBSintaxe e armadilhas | INSERT OR REPLACE / ON CONFLICT DO UPDATE | reescreve as entidades alteradas no banco local (ou em Parquet) a cada execução |
| Amazon AthenaSintaxe e armadilhas | MERGE INTO (Iceberg table, engine v3) | grava novas partições Parquet e as registra no Glue Data Catalog |
| Amazon S3 Data LakeSintaxe e armadilhas | append partition + latest-version view | grava novas partições por data e compacta arquivos pequenos de forma agendada |
| Azure Data Lake StorageSintaxe e armadilhas | append partition + latest-version view | grava novas partições por data no container e compacta de forma agendada |
| Azure SynapseSintaxe e armadilhas | MERGE (dedicated SQL pool) | COPY para staging e depois um MERGE por id estável |
| AirtableSintaxe e armadilhas | PATCH /records with performUpsert | upserts de registros pareados por um campo de id estável |
| MongoDBSintaxe e armadilhas | bulkWrite updateOne { upsert: true } | upserts por id estável com updateOne(upsert) sobre a chave primária de origem |
| SupabaseSintaxe e armadilhas | INSERT … ON CONFLICT DO UPDATE | uma marca d'água sobre updated-at, aplicada com INSERT … ON CONFLICT DO UPDATE |
| NeonSintaxe e armadilhas | INSERT … ON CONFLICT DO UPDATE | uma marca d'água sobre updated-at, aplicada com INSERT … ON CONFLICT DO UPDATE |
| PlanetScaleSintaxe e armadilhas | INSERT … ON DUPLICATE KEY UPDATE | uma marca d'água sobre updated-at, aplicada com INSERT … ON DUPLICATE KEY UPDATE |
| Amazon DynamoDBSintaxe e armadilhas | PutItem with ConditionExpression | PutItem/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