Questão nº 35
Questão de Informática · FCC TRT6 2018 (nº 35)
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
- A`DELETE primary key FROM tribunal ON CASCADE;`
- B`ALTER TABLE tribunal DELETE primary key ON CASCADE;`
- C`DELETE primary key, foreign key FROM tribunal;`
- D`ALTER TABLE tribunal DROP primary key CASCADE;` (alternativa correta)
- E`DROP primary key FROM tribunal CASCADE foreign key;`
Resposta comentada
Gabarito Alternativa D
Para modificar a estrutura de uma tabela, como remover uma chave primária (Primary Key) e suas chaves estrangeiras (Foreign Keys) dependentes, usamos comandos DDL (Data Definition Language). A chave primária é um identificador único para cada linha, e a chave estrangeira é uma referência a essa chave primária em outra tabela.
- (A) Incorreta:
DELETEé um comando DML (Data Manipulation Language) usado para remover dados (linhas) de uma tabela, não para alterar a estrutura ou remover restrições. - (B) Incorreta: Embora comece com
ALTER TABLE, que é correto para modificar a estrutura, o comandoDELETE primary keyestá incorreto. O termo correto para remover uma restrição éDROP. - (C) Incorreta: Assim como na alternativa A,
DELETEé para dados, não para remover restrições de esquema. A sintaxe também está completamente errada para DDL. - (D) Correta: Esta é a sintaxe padrão e correta no Oracle.
ALTER TABLE tribunal: Indica que estamos modificando a tabelatribunal.DROP primary key: Remove a restrição de chave primária da tabela.CASCADE: Esta palavra-chave é crucial. Ela instrui o banco de dados a remover automaticamente todas as restrições de chave estrangeira em outras tabelas que fazem referência à chave primária que está sendo removida na tabelatribunal. Isso atende à segunda parte da questão ("e a restrição foreign key associada a essa chave primária").
- (E) Incorreta: A sintaxe
DROP primary key FROM tribunalestá incorreta. O comandoDROPpara restrições deve ser precedido porALTER TABLE. Além disso,CASCADE foreign keynão é a sintaxe correta; apenasCASCADEé suficiente para remover as chaves estrangeiras dependentes. A armadilha aqui é usarDROPeCASCADE, que são as palavras-chave corretas, mas combiná-las com uma sintaxe inválida (FROM tribunaleCASCADE foreign keyem vez de apenasCASCADE).
Fonte: FCC TRT6 2018 Analista Judiciário – Área Apoio Especializado – Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.