English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL Limpar tabela (instrução TRUNCATE TABLE)

Neste tutorial, você aprenderá como usar SQL para rapidamente excluir todas as linhas de uma tabela.

excluir dados da tabela

A instrução TRUNCATE TABLE é mais rápida do que o DELETE para excluir todas as linhas da tabela. Logicamente, o TRUNCATE TABLE é semelhante aDELETEnenhumWHEREcláusula de instrução.

A instrução TRUNCATE TABLE remove todas as linhas da tabela, mas mantém a estrutura da tabela e suas colunas, restrições, índices, etc. Para excluir a tabela e seus dados, você pode usar aDROP TABLEinstrução, mas operações devem ser realizadas com cautela.

Sintaxe

Sintaxe básica do TRUNCATE TABLE:

TRUNCATE TABLE table_name;

Vamos executar uma operação de limpeza na tabela do banco de dados.

Considere que temos umaemployeetabela, contendo os seguintes registros:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name | hire_date | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 | NULL |
+--------+--------------+------------+--------+---------+

As seguintes instruções removememployeesremover todas as linhas da tabela:

TRUNCATE TABLE employees;

Agora, após a execução das instruções SQL acima, se tentar recuperaremployeena tabelaselecionar registrosobterá um conjunto vazio de resultados.

TRUNCATE TABLE vs DELETE

Embora o DELETE e o TRUNCATE TABLE pareçam ter efeitos semelhantes, eles funcionam de maneira diferente. Aqui estão algumas das principais diferenças entre essas duas instruções:

  • A sentença TRUNCATE TABLE exclui e recria a tabela, resetando qualquer valor de incremento automático para seu valor inicial (geralmente)1)

  • DELETE permite que você filtre as linhas a serem excluídas com base em uma cláusula WHERE opcional, enquanto TRUNCATE TABLE, que não suporta cláusula WHERE, exclui apenas todas as linhas.

  • Em comparação com DELETE, TRUNCATE TABLE é mais rápido e usa menos recursos do sistema, porque DELETE varre a tabela para gerar o número de linhas afetadas, remove linha a linha e registra uma entrada para cada linha excluída no log do banco de dados, enquanto TRUNCATE TABLE remove todas as linhas sem fornecer nenhuma outra informação.

Dica:Se você apenas quiser excluir todas as linhas e recriar toda a tabela, use TRUNCATE TABLE. Se você quiser excluir um número limitado de linhas com base em condições específicas ou se não desejar redefinir o valor de incremento automático, use DELETE.