Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — FCC 2017
Banco de Dados›SGBD - 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
ACONSTRAINT MODIFY CASCADE.
BALTER CASCADE.
CON UPDATE CASCADE.
DEXTEND UPDATE.
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.