Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FCC 2018

Banco de DadosOracle
Código
fc051108
Banca
FCC
Órgão
TRT - 6ª Região (PE)
Ano
2018
Cargo
Analista Judiciário - Tecnologia da Informação
No Oracle, para remover a restrição primary key da tabela tribunal e a restrição foreign key associada a essa chave primária, utiliza-se a instrução
  1. ADELETE primary key FROM tribunal ON CASCADE;
  2. BALTER TABLE tribunal DELETE primary key ON CASCADE;
  3. CDELETE primary key, foreign key FROM tribunal;
  4. DALTER TABLE tribunal DROP primary key CASCADE;
  5. EDROP primary key FROM tribunal CASCADE foreign key;
Revelar gabarito e comentário

GabaritoD — ALTER TABLE tribunal DROP primary key 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”.

Oracle: Remoção de chave primária com dependentes

Gabarito: letra D. No Oracle, a instrução correta para remover uma restrição PRIMARY KEY e todas as restrições FOREIGN KEY que referenciam essa chave primária é ALTER TABLE nome_tabela DROP PRIMARY KEY CASCADE;. As demais alternativas usam comandos inválidos (DELETE em vez de DROP) ou sintaxe incorreta.

A banca testa o conhecimento da sintaxe DDL do Oracle para gerenciamento de constraints. A cláusula CASCADE é essencial para que as foreign keys dependentes sejam automaticamente removidas junto com a primary key.

Alternativa A — ❌ Incorreta

DELETE primary key FROM tribunal ON CASCADE; — O comando DELETE é usado para remover dados (linhas) de uma tabela, não para remover restrições. Além disso, a sintaxe está completamente fora do padrão Oracle/SQL.

Alternativa B — ❌ Incorreta

ALTER TABLE tribunal DELETE primary key ON CASCADE; — A cláusula correta dentro de ALTER TABLE para remover uma constraint é DROP, não DELETE. O uso de ON CASCADE também não faz parte da sintaxe de remoção.

Alternativa C — ❌ Incorreta

DELETE primary key, foreign key FROM tribunal; — Novamente, DELETE é para dados, não para constraints. A lista separada por vírgulas não é reconhecida.

Alternativa D — ✅ Correta ⟵ GABARITO

ALTER TABLE tribunal DROP primary key CASCADE; — Exatamente a sintaxe correta do Oracle. O comando ALTER TABLE ... DROP PRIMARY KEY remove a restrição de chave primária da tabela. A opção CASCADE instrui o banco a também remover todas as foreign keys que referenciam essa primary key, evitando erros de integridade referencial.

Alternativa E — ❌ Incorreta

DROP primary key FROM tribunal CASCADE foreign key; — Não se usa DROP diretamente com FROM para remover constraints; é necessário ALTER TABLE. Além disso, a cláusula CASCADE foreign key não é válida.

NÃO CAIA NESSA!

A banca explora a confusão entre comandos DML (DELETE) e DDL (DROP). O candidato pode lembrar que para remover dados usa-se DELETE, mas para remover a estrutura da constraint o correto é DROP dentro de ALTER TABLE. A cláusula CASCADE é o detalhe que garante a exclusão das foreign keys associadas.

PEGA ESSA DICA!

Decore a sintaxe: ALTER TABLE nome ADD/DROP PRIMARY KEY [CASCADE]. O CASCADE é obrigatório quando existem foreign keys dependentes; sem ele, o Oracle retornará erro de integridade.

Gabarito: letra D.

Link permanente: /questoes/fc051108