← Questões de Banco de Dados

Banco de Dados · FGV · 2022

Questão comentada de Banco de Dados

No contexto do PostgreSQL, avalie se o comando TRUNCATE I. Inibe a ação dos triggers para DELETE associados à tabela durante a deleção dos registros (linhas); II. Requer o privilégio TRUNCATE; III. Permite “resetar” as colunas identificadoras para os valores originais por meio da cláusula RESTART IDENTITY; IV. Permite o truncamento ode várias tabelas numa única linha de comando. Assinale o número de características que são fidedignas ao funcionamento do PostgreSQL.

Gabarito: E

No PostgreSQL, o comando TRUNCATE serve para esvaziar rapidamente uma tabela, sem fazer a remoção linha por linha como no DELETE. Isso importa porque, ao truncar, o banco não dispara os triggers de DELETE, justamente por não estar executando exclusão individual de registros. Além disso, o comando exige o privilégio específico TRUNCATE, então não basta ter permissões genéricas de escrita. Outro ponto clássico é o uso de RESTART IDENTITY: com essa cláusula, as colunas geradas por sequence, como identidades e auto incrementos, voltam ao valor inicial. Se você não quiser esse reset, pode usar CONTINUE IDENTITY. Ou seja, o comando não só limpa a tabela, como também pode “zerar” a numeração automática, se você pedir. Por fim, o TRUNCATE pode atingir mais de uma tabela na mesma instrução, o que é muito útil quando há tabelas relacionadas. No PostgreSQL, isso é previsto no manual e é uma das diferenças que costumam aparecer em prova. Então as quatro afirmações estão corretas, por isso o gabarito é E.

Continue treinando

Questões relacionadas