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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar