Observe o comando SQL a seguir. drop table T1, T2 casc...

Próximas questões
Com base no mesmo assunto
Q914447 Banco de Dados

Observe o comando SQL a seguir.


drop table T1, T2 cascade


No MYSQL, esse comando

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: B - remove as tabelas T1 e T2 e os registros de outras tabelas que dependem de T1 e/ou T2.

Para resolver esta questão, é fundamental compreender o que significa o comando DROP TABLE e o que a cláusula CASCADE adiciona a ele no contexto do MySQL. O comando DROP TABLE é utilizado para remover uma ou mais tabelas de um banco de dados. Quando você executa esse comando, todas as informações contidas nas tabelas especificadas são perdidas.

O uso da cláusula CASCADE é essencial quando existem restrições de chave estrangeira que vinculam as tabelas que estão sendo excluídas a outras tabelas no banco de dados. Neste contexto, CASCADE permite que a ação de remoção das tabelas se propague, ou seja, que também remova quaisquer objetos dependentes, como outras tabelas que tenham relações de chave estrangeira com as tabelas T1 ou T2.

Portanto, a alternativa B é a correta, pois ela afirma exatamente isso: ao executar o comando drop table T1, T2 cascade;, o MySQL irá remover as tabelas T1 e T2 e também vai cuidar de remover todos os registros que dependem dessas tabelas em outras tabelas do banco de dados. Isso é feito para manter a integridade referencial do banco de dados, evitando que fiquem registros órfãos, os quais seriam registros que fazem referência a chaves estrangeiras de tabelas que não existem mais.

As outras opções são incorretas porque:

  • A alternativa A apenas menciona a remoção da tabela T1 e dos registros de T2 que dependem de T1, o que é uma interpretação parcial e incompleta da funcionalidade do comando com a cláusula CASCADE.
  • A alternativa C inverte as tabelas, quando, na realidade, a exclusão é das tabelas T1 e T2 e não de registros de uma pela outra.
  • A alternativa D ignora completamente o efeito da cláusula CASCADE, o que está incorreto.
  • A alternativa E sugere que o comando é inválido no MySQL, o que não é verdade, pois o comando é válido e tem um efeito específico como descrito.

Sendo assim, sempre que encontrar um comando de exclusão de tabelas com a cláusula CASCADE, lembre-se de que o seu efeito é remover não só as tabelas listadas, mas também qualquer objeto que dependa delas, assegurando a integridade das relações dentro do banco de dados.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O Gabarito discorda da documentação do MySQL

The RESTRICT and CASCADE keywords do nothing. They are permitted to make porting easier from other database systems.

https://dev.mysql.com/doc/refman/8.0/en/drop-table.html

Letra B.
cascade atualiza ou exclui os registros da tabela filha, ao atualizar ou excluir um registro da tabela pai.
Porém, está errado o comando sql, a sintaxe. 
https://www.techonthenet.com/mysql/tables/drop_table.php

Concordo com o André, CASCADE não faz nada no MYSQL.

Gabarito absurdo.

Alternativa correta: B, mas cabe recurso pois o examinador não entende muito de BD pelo visto

.

.

Para cascatear a exclusão de itens de um BD, o comando para habilitar isso deve ir nas tabelas-filhas, e não na tabela-pai. Ou seja, nas tabelas-filhas deve ter um comando assim:

.

CREATE TABLE categories_products (

  category_id int unsigned not null,

  product_id int unsigned not null,

  PRIMARY KEY (category_id, product_id),

  KEY pkey (product_id),

  FOREIGN KEY (category_id) REFERENCES categories (id)

    ON DELETE CASCADE

    ON UPDATE CASCADE,

  FOREIGN KEY (product_id) REFERENCES products (id)

    ON DELETE CASCADE

    ON UPDATE CASCADE

)Engine=InnoDB;

.

Note o comando "on delete cascade". Ele é quem permite que uma exclusão de uma tabela-pai repercuta em uma tabela-filha que tenha chave estrangeira.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo