Diferença entre delete e truncate

SQL

27/10/2016

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

Curtidas 1

Melhor post

Diego Silva

Diego Silva

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!
GOSTEI 3

Mais Respostas

Fabiano Carvalho

Fabiano Carvalho

27/10/2016

Truncate LIMPA a tabela e não gera log não usa where.
Delete limpa registros e gera log e pode usar where.
GOSTEI 1
Larissa Aguiar

Larissa Aguiar

27/10/2016

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

Rafael Costa

27/10/2016

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.
GOSTEI 0
Talilo Araujo

Talilo Araujo

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!


Obrigado ajudou muito!!
GOSTEI 0
Arthur Heinrich

Arthur Heinrich

27/10/2016

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.
GOSTEI 1
POSTAR