Aprenda inglês em casa
Baixe gratuitamente as duas primeiras aulas
English for Reading and Listening
Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.
|
Busca |
Aprenda inglês em casa
Baixe gratuitamente as duas primeiras aulas
English for Reading and Listening
Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.
Por Luiz Paulo de Oliveira Santos
Data de Publicação: 28 de Outubro de 2006
Antes de qualquer coisa, sugiro que leia atentamente toda a dica, pois nessa dica tratamos APAGAMENTO de informações, então todo cuidado é pouco!
Nas listas de discussão, as vezes, circulam questionamentos do tipo: Como faço para zerar completamente o conteúdo de uma tabela? Como apagar todos os registros de uma tabela de uma vez?
Perguntas de novatos? Alguns desenvolvedores dizem que sim, mas o que realmente me surpreende são as respostas!
Então decidi escrever sobre uma instrução muito simples do SQL, mas que poucos desenvolvedores realmente utilizam (pelo menos foi o que detectei lendo as listas).
TRUNCATE TABLE <tabela>
O TRUNCATE é uma instrução que na teoria retorna a tabela à sua posição inicial após a sua criação.
Mas até aí, o DELETE poderia fazer isso. Porém existe vantagens sobre o DELETE?
A resposta é sim. Principalmente quando:
Uma diferença do TRUNCATE table para o DROP table é que usando TRUNCATE table não é necessário redefinir privilégicos com GRANT, não é necessário recriar índices, constrains e triggers previamente definidas.
Alguns bancos de dados utilizam índices, e outros um pseudo-código para gerar campos auto-incrementais. Nesses dois casos o TRUNCATE table zera o contador dos campos auto-incrementais. Porém há bancos de dados que armazenam o valor da chave (ou a ser preenchido) em outro local, externo à tabela, em GENERATORs por exemplo, nesses bancos deve-se setar manualmente o valor do GENERATOR.
Observação importante: Citamos nessa dica a função operacional do TRUNCATE table, porém pequenas variações em seu funcionamento, de banco para banco podem ocorrer. Há bancos (comerciais) que após executarmos um TRUNCATE table podemos detectar problemas em VIEWs e TRIGGERS. portanto antes de utilizá-lo, consulte as especificidades do seu banco com relação ao TRUNCATE table.
Até mais e um abraço.
![]() Recomendar este artigo |
Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS
Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.