English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como usar SQL para rapidamente excluir todas as linhas de uma 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 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.
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.