← Voltar para Inspeções

Inspeções

Inspeção: Upsert — inserir ou actualizar sem duplicar a identidade

Publicado em 22 de agosto de 2026

Escopo

Inspeção editorial da palavra upsert — portmanteau inglês de update + insert. No ofício de bases de dados: inserir se a identidade ainda não existe; actualizar se já existe. Pedido de campo e ironia do lab: os scripts da casa chamam-se `upsert-palavra-*.js` — esta ficha entra no catálogo pelo gesto que nomeia. Cobre o lema, o mapa INSERT × UPDATE × UPSERT × MERGE × REPLACE, o calco BR upsertar, o elo commitar (gravar o snapshot depois do merge) e o fecho Valeu !!!.

Nota metodológica: auditoria independente. Fontes: Wiktionary · upsert, MERGE (SQL)), uso BR de oficina. Ficha ≠ tutorial SQL, ≠ receita de corrida, ≠ licença para overwrite silencioso. Tom: Inspetor BudGanja — upsert é gesto de identidade, não botão mágico.

1. Objecto inspecionado

CampoValor
Forma âncoraupsert (EN; substantivo / verbo)
Calco BRupsertar (como commitar) — «fazer upsert»
ClasseEmpréstimo de ofício (bases de dados, APIs, catálogos)
Étimo (trabalho)Portmanteau update + insert (jargão EN, séc. XX–XXI) — confiança: alta no blend; média na data exacta do primeiro uso
Famíliaupsert · upsertar · SQL MERGE · ON CONFLICT · ON DUPLICATE KEY
Falsos irmãosupar (games, «subir de nível») · replace (apagar + inserir — outra política) · commitar (snapshot git — depois)
Tipo BudGanjaPalavra — identidade × merge inspeccionável
Elo rastocommitar — gravar o que ficou depois do merge
Elo moldepattern — upsert é um pattern de dados, não lei natural
Elo ofíciogesto · verdade · caminho · skill · Grok
Elo língualíngua portuguesa — empréstimo vivo; PT nativo = inserir ou actualizar
Fonteupsert · MERGE)
Data2026-08-22

Objecto: o vocábulo de não duplicar a identidade. A chave (id, slug, primary key) decide o ramo: novo → insert; já lá → update. Não é «gravar no git». Não é «apagar e pôr outro».

2. Hipóteses e método

H1: upsert é blend de ofício, não herança latina — update + insert colados na boca da base de dados.
H2: o que parece um botão único é uma política de conflito: o que fazer quando a chave já existe.
H3: MERGE (SQL:2003) é o nome-norma; upsert é o nome de oficina (PostgreSQL, MongoDB, APIs).
H4: no lab BudGanja, `upsertPost(posts, post)` é este gesto: se o slug existe, actualiza; senão, insere no topo.
H5: commitar vem depois — o upsert mistura o objecto; o commit grava o rasto.

Passos: blend EN → mapa SQL → calco BR → gesto lab (slug) → limites → Valeu !!!.

3. Ofícios (não misturar)

OfícioO que éO que não é
INSERTCriar linha novaFalha (ou ignora) se a chave já existe
UPDATEAlterar linha existenteZero linhas se a chave não existe
UPSERTInsert ou update conforme a chaveMagia; force sem inspeccionar campos
MERGENome ISO SQL do mesmo patternOutra palavra; mesmo ofício de conflito
REPLACEMuitas vezes delete + insertPode mudar identidade (rowid); ≠ upsert
commitarSnapshot com mensagemNão decide insert vs update

Irmãos de fluxo (não fundir): upsert (identidade no catálogo) → commitar (rasto) → push / deploy — três gestos. Esta ficha é só o primeiro.

4. O que parece × o que é

CamadaO que pareceO que é (leitura lab)
Botão único«Sempre funciona»Política de chave + resolução de conflito
OverwriteSubstituir tudoMerge inspeccionável — campos, não identidade
Inglês no meio do PTEstrago da línguaEmpréstimo de ofício, como skill e commitar
upsertarErro / anglicismo feioCalco vivo do mesmo verbo
Script `upsert-*`Nome interno de ficheiroO lab já pratica o lema: ficha nova ou ficha actualizada, um slug
CorridaDois escritores, um vencedorSem verdade do conflito = buguei

H-parece: upsert vende idempotência fácil — corre outra vez e está igual.
H-é: só é fácil se a chave estiver certa e o merge não apagar o que importava.

Veredicto contraste: o que parece = um comando; o que é = identidade + política. Corrigir a palavra = nomear a chave (no lab: o slug).

5. Gesto BudGanja

No catálogo da casa, o slug é a chave. `upsertPost`:

  1. Procurar a ficha pelo slug.
  2. Se existir: actualizar (mesclar campos; não criar segundo «upsert»).
  3. Se não existir: inserir (no lab, no topo da lista).
  4. Só depois: commitar o rasto — mensagem que diz o porquê.
  5. Se o merge sujar: backspace / buguei — não fingir que upsert = limpar.

Ofício correcto (mapa curto)

  1. Fixar a identidade (slug, id) antes de escrever.
  2. Declarar o conflito: actualizar o quê, preservar o quê.
  3. Upsertar uma ficha — não duas com o mesmo nome.
  4. Commitar o snapshot; fechar com Valeu !!!.

Veredicto correção: upsert ≠ overwrite silencioso. No lab, upsert só vale com chave visível e merge com verdade.

6. Usos no português do Brasil

UsoExemploBom × mau
Oficina / SQL«Faz upsert pela chave»Bom: nomear o conflito · Mau: esconder o ON CONFLICT
Calco«Vou upsertar a ficha»Bom: ofício, como commitar · Mau: jargão sem chave
API / docupsert: trueBom: política explícita · Mau: default que apaga campos
Lab BudGanja`upsert-palavra-upsert-inspecao.js`Bom: o script é o lema · Mau: duplicar slug
Falso amigo«upar o personagem»Outra palavra (games)

Rede aparentada

RecursoRelação
commitarDepois do merge: gravar o rasto; ≠ push/PR
patternUpsert é molde de dados — copiar cego é risco no molde
skill · GrokOutros empréstimos de ofício
gesto · verdade · caminhoComo se upserta
buguei · backspaceQuando o merge trava / rever
EXITSair do aperto ≠ apagar a identidade
língua portuguesa · Guia · Vida · Valeu !!!Índice e fecho

Limites

Veredicto

Aprovado na série Palavras — upsert fichado como portmanteau de identidade (update + insert); calco upsertar; ≠ replace ≠ commitar; o lab já pratica o gesto no slug; fecho Valeu !!!.

▶ Palavras · ▶ Commitar · ▶ Pattern · ▶ Skill · ▶ Valeu !!!

Upsert · palavra · Cap. 201