Alison utilizou o seguinte comando SQL para inserir registros em uma tabela. INSERT INTO TB_A (COL_1, COL_2) SELECT COL_X, COL_Y FROM TAB_B; Após a execução do comando, Alison percebeu que a tabela origem dos dados estava errada, deveria ser TB_C. Para apagar os registros da tabela TB_A mantendo sua estrutura, Alison deve executar o comando:
- A)DROP TABLE TB_A;
Errada, porque `DROP TABLE` remove a tabela inteira, apagando estrutura e dados.
- B)ALTER TABLE TB_A ADD COL_Y INT, COL_Y INT;
Errada, porque `ALTER TABLE` serve para alterar a estrutura da tabela, nao para apagar registros.
- C)DELETE FROM TABLE TB_A WHERE COL_X = COL_Y;
Errada, porque `DELETE` exige condicao no formato mostrado e, alem disso, a sintaxe apresentada esta incorreta.
- D)UPDATE TB_A SET 1=1;
Errada, porque `UPDATE` altera valores de registros existentes, nao apaga linhas.
- E)TRUNCATE TABLE TB_A.
Certa, porque `TRUNCATE TABLE` remove جميع os registros da tabela mantendo sua estrutura.
Gabarito: E
Quando voce faz um `INSERT INTO ... SELECT ...`, os dados saem de uma tabela fonte e entram em outra. Se depois percebe que a origem estava errada, o problema agora nao e mais de insercao, e sim de limpeza da tabela destino, a TB_A. Nesse caso, a ideia e apagar todas as linhas sem mexer na estrutura da tabela, isto e, sem remover colunas, tipos, indices ou restricoes. Para isso, o comando adequado e `TRUNCATE TABLE`. Ele esvazia a tabela de forma rapida, mantendo a estrutura intacta. Em linguagem de prova, pense assim: `DELETE` apaga linhas, mas pode ser mais lento e geralmente permite filtro com `WHERE`; `TRUNCATE` limpa tudo de uma vez e preserva a tabela. Ja o `DROP` faria desaparecer a tabela inteira, o que nao serve quando voce quer manter a estrutura. Em concursos, a diferenca entre `DELETE` e `TRUNCATE` cai muito. O `DELETE` e um comando DML, enquanto `TRUNCATE` costuma ser tratado como comando de definicao/controle de dados, dependendo do SGBD, mas o ponto cobrador da FGV e funcional: limpar a tabela sem destruir sua estrutura. E foi exatamente isso que o enunciado pediu. Por isso, o gabarito e a alternativa E. A tabela TB_A sera esvaziada e continuara pronta para receber novos dados, como uma lousa apagada, nao quebrada.