Diferença entre delete e truncate

27/10/2016

0

SQL

Oi gente, uma pequena dúvida e se for algo fácil desculpem, mas não sei mesmo o que pode ser.

Qual a diferença que existe entre os comandos delete e truncate no sql?

Os dois apagam os dados da tabela. E se tiver diferença, em quais casos se deve usar um ou outro.
Larissa Aguiar

Larissa Aguiar

Responder

Post mais votado

27/10/2016

Complementando a resposta da Faabiianooc

O TRUNCATE é um comando DDL (Data Definition Language) e zera a indexação da tabela. Acredito que deve ser mais rápido que o DELETE também

O DELETE é um comando DML (Data Manipulation Language) e não zera a indexação da tabela. Como citado, pode usar a cláusula WHERE, que restringirá o comando ao que estiver na condição.

Espero ter ajudado!

Diego Silva

Diego Silva
Responder

Mais Posts

27/10/2016

Fabiano Carvalho

Truncate LIMPA a tabela e não gera log não usa where.
Delete limpa registros e gera log e pode usar where.
Responder

28/10/2016

Larissa Aguiar

Obrigada gente! Então não vejo no meu caso muita utilidade pro TRUNCATE. Parece que o DELETE me atende melhor.
Responder

01/10/2019

Rafael Costa

O TRUNCATE vai limpar totalmente a TABELA, então ele vai ser útil caso você queira por exemplo COPIAR UMA TABELA, porém quer está CÓPIA limpa, daí você usa o TRUNCATE. Este é um exemplo prático da utilização do TRUNCATE.

Já o DELETE é para você trabalhar mais precisamente numa tabela. Designando condições específicas para o que você quer deletar numa tabela.

Acho que é assim que você deve encarar esses comandos.
Responder

05/02/2024

Talilo Araujo

Complementando a resposta da Faabiianooc

O TRUNCATE é um comando DDL (Data Definition Language) e zera a indexação da tabela. Acredito que deve ser mais rápido que o DELETE também

O DELETE é um comando DML (Data Manipulation Language) e não zera a indexação da tabela. Como citado, pode usar a cláusula WHERE, que restringirá o comando ao que estiver na condição.

Espero ter ajudado!


Obrigado ajudou muito!!
Responder

05/02/2024

Arthur Heinrich

Mais um detalhe complementar.

O delete atua de forma lógica, no conteúdo da tabela. Ele não modifica a estrutura física, que inclui o espaço alocado para a tabela e índices, com exceção de alguns bancos que tentar reorganizar a tabela, sempre que blocos ficam subutilizados.

Já o truncate faz com que a alocação de espaço seja liberada, tornando a tabela pequena e os índices organizados. Na prática, é como se fizéssemos um drop table seguido de create, novamente, mas sem perder os índices, permissões ou invalidar objetos que fazem referência à tabela.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar