Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Declaração MySQL TRUNCATE TABLE

A instrução `TRUNCATE TABLE` no MySQL é usada para excluir todas as linhas de uma tabela, redefinindo-a efetivamente para seu estado vazio. Ao contrário do `DELETE`, ele executa essa operação rapidamente, desalocando as páginas de dados usadas pela tabela.

Uso

A instrução `TRUNCATE TABLE` é usada quando você precisa remover rapidamente todos os dados de uma tabela sem registrar as exclusões de linhas individuais. Geralmente é usado durante o desenvolvimento ou ao redefinir tabelas para ambientes de teste.

TRUNCATE TABLE table_name;

Nessa sintaxe, `TRUNCATE TABLE nome_da_tabela` especifica a tabela da qual todas as linhas serão removidas. Observe que `TRUNCATE TABLE` é uma operação de linguagem de definição de dados (DDL) e confirma implicitamente a transação, o que significa que seus efeitos são imediatos e não podem ser revertidos se você não estiver em uma transação.

Exemplos

1. Truncamento básico

TRUNCATE TABLE employees;

Esse exemplo remove todas as entradas da tabela `employees`, deixando-a vazia.

2. Truncar com verificações de chave estrangeira desativadas

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE orders;
SET FOREIGN_KEY_CHECKS = 1;

Aqui, as verificações de chave estrangeira são temporariamente desativadas para truncar a tabela `orders`, que pode ter dependências.

3. Truncar e redefinir o acréscimo automático

TRUNCATE TABLE logs;

O truncamento da tabela `logs` não apenas exclui todas as linhas, mas também redefine os contadores de incremento automático para seus valores iniciais.

Dicas e práticas recomendadas

  • Use com cuidado. O `TRUNCATE TABLE` não pode ser revertido se não estiver em uma transação; certifique-se de que você deseja excluir permanentemente todos os dados.
  • Considere as chaves estrangeiras. Desative temporariamente as verificações de chave estrangeira, se necessário, ao truncar tabelas com dependências.
  • Redefinir os dados de forma eficaz. Utilize esse comando para redefinições rápidas de dados em ambientes de teste ou desenvolvimento, em vez de usar `DELETE`.
  • Cuidado com as permissões. Certifique-se de que você tenha as permissões necessárias, pois o `TRUNCATE TABLE` exige privilégios `DROP` na tabela.
  • Os acionadores não são ativados. Ao contrário do `DELETE`, o `TRUNCATE TABLE` não ativa os acionadores, o que pode ser uma consideração importante nas operações do banco de dados que você realiza.
  • Impacto sobre os índices. O truncamento de uma tabela também removerá e recriará os índices, o que pode resultar em melhorias de desempenho ao redefinir tabelas grandes.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça