Pular para o conteúdo principal

Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — FCC 2017

Banco de DadosSGBD - Sistema de Gerenciamento de Banco de Dados
Código
fc037963
Banca
FCC
Órgão
TRE-PR
Ano
2017
Nível
Médio
Cargo
Técnico Judiciário - Operação de Computadores
Ao tentar alterar na tabela Partido o idPartido de PNC para PNCT, foi exibida a mensagem "Cannot delete or update a parent row: a foreign key constraint fails". Isso ocorreu porque o Sistema Gerenciador de Banco de Dados não conseguiu alterar na tabela Filiado o idPartido dos filiados ao PNC para PNCT. Para que a alteração fosse bem sucedida, no momento da criação da tabela Filiado, à cláusula REFERENCES deveria ter sido adicionada a cláusula
  1. ACONSTRAINT MODIFY CASCADE.
  2. BALTER CASCADE.
  3. CON UPDATE CASCADE.
  4. DEXTEND UPDATE.
  5. EON ALTER CASCADE.
Revelar gabarito e comentário

GabaritoC — ON UPDATE CASCADE.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL – Foreign Key Constraint com CASCADE

Gabarito: letra C. Para que a alteração da chave primária em uma tabela pai seja propagada automaticamente para as chaves estrangeiras na tabela filha, é necessário adicionar a cláusula ON UPDATE CASCADE na definição da chave estrangeira. Sem ela, o SGBD impede a alteração para evitar violação de integridade referencial, gerando a mensagem de erro descrita.

A mensagem de erro "Cannot delete or update a parent row: a foreign key constraint fails" indica que há registros na tabela filha (Filiado) que referenciam o valor que se tenta alterar na tabela pai (Partido). A solução é definir uma ação de cascata para atualizações, que pode ser CASCADE (propaga a alteração), SET NULL, SET DEFAULT ou NO ACTION (padrão). Como o enunciado pede para tornar a alteração bem‑sucedida, a opção correta é ON UPDATE CASCADE.

Cláusula SQL

Função

Válida?

ON UPDATE CASCADE

Propaga automaticamente alterações na chave primária da tabela pai para as chaves estrangeiras na tabela filha.

✅ Sim

ON DELETE CASCADE

Propaga automaticamente exclusões na tabela pai para as linhas correspondentes na tabela filha.

✅ Sim, mas não resolve o problema de atualização

CONSTRAINT MODIFY CASCADE

Não é uma sintaxe SQL válida.

❌ Não

ALTER CASCADE

Não é uma cláusula SQL padrão.

❌ Não

EXTEND UPDATE

Não é uma cláusula SQL reconhecida.

❌ Não

ON ALTER CASCADE

Não é válida; a palavra-chave após ON deve ser DELETE ou UPDATE.

❌ Não

Alternativa A — ❌ Incorreta

CONSTRAINT MODIFY CASCADE não é uma sintaxe válida em SQL. As cláusulas de ação referencial são ON DELETE e ON UPDATE, seguidas de uma ação (CASCADE, SET NULL, etc.).

Alternativa B — ❌ Incorreta

ALTER CASCADE também não é uma cláusula SQL padrão. A ação de cascata deve ser especificada no momento da criação ou alteração da chave estrangeira, mas não com essa palavra‑chave.

Alternativa C — ✅ Correta ⟵ GABARITO

ON UPDATE CASCADE é a cláusula correta. Ela instrui o SGBD a propagar automaticamente qualquer alteração na chave primária referenciada para as linhas correspondentes na tabela filha, eliminando o conflito de integridade referencial.

Alternativa D — ❌ Incorreta

EXTEND UPDATE não é uma cláusula reconhecida no SQL para definição de chave estrangeira.

Alternativa E — ❌ Incorreta

ON ALTER CASCADE não é válida. A palavra‑chave após ON deve ser DELETE ou UPDATE, não ALTER.

PEGA ESSA DICA!

Memorize as duas cláusulas de ação referencial: ON DELETE [CASCADE | SET NULL | SET DEFAULT | NO ACTION] e ON UPDATE [CASCADE | SET NULL | SET DEFAULT | NO ACTION]. A questão da FCC cobrou especificamente a ação de UPDATE com CASCADE.

Gabarito: letra C.

Link permanente: /questoes/fc037963