Questão FC372785
Para definir uma ação alternativa caso um registro proposto viole uma restrição de unicidade no PostgreSQL, deve-se usar o comando
Linguagem SQL
FCC · 2024
Para definir uma ação alternativa caso um registro proposto viole uma restrição de unicidade no PostgreSQL, deve-se usar o comando
- ON CONFLICT
- ON EQUAL
- WHEN CONFLICT
- ON MATCHED
- WHEN MATCHED
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
A resposta correta é ON CONFLICT. Essa cláusula é usada junto com INSERT no PostgreSQL para tratar tentativas de inserção que violariam restrições de unicidade, permitindo definir uma ação alternativa sem gerar erro.
Com ON CONFLICT você pode escolher, por exemplo, DO NOTHING — ignorar a inserção conflitante — ou DO UPDATE — atualizar o registro existente com os valores novos. Isso implementa o chamado upsert (combinação de update e insert).
É possível especificar o alvo do conflito, por exemplo:
INSERT INTO tabela (id, nome) VALUES (1, 'A') ON CONFLICT (id) DO UPDATE SET nome = EXCLUDED.nome;
Note que a palavra EXCLUDED refere-se aos valores propostos originalmente para inserção, permitindo construir a atualização condizente com os novos dados.
Conteúdo do catálogo FC Concursos · Atualizado em