Principal diferença
DELETE e TRUNCATE são dois termos usados em Structured Query Language (SQL) para excluir registros ou dados de uma tabela. Embora o resultado final de ambos os comandos seja o mesmo, também há algumas diferenças entre esses dois que são importantes de entender. A principal diferença entre DELETE e TRUNCATE é que DELTE é um comando Data Manipulation Language (DML) enquanto TRUNCATE é um comando Data Definition Language (DDL).
O que é TRUNCATE?
TRUNCATE também é uma operação registrada. A instrução TRUNCATE TABLE é um comando DDL em SQL que marca as extensões de uma tabela para desalocação. Como resultado dessa operação, todos os dados da tabela são excluídos instantaneamente, geralmente ignorando uma série de mecanismos de imposição de integridade. Foi introduzido no padrão SQL: 2008. A instrução ‘TRUNCATE TABLE mytable’ é logicamente equivalente à instrução ‘DELETE FROM mytable’ sem uma cláusula ‘WHERE’. ‘TRUNCATE TABLE’ remove instantaneamente todos os dados de uma tabela desalocando as páginas de dados usadas pela tabela. Isso reduz a sobrecarga de recursos de exclusões de log, bem como o número de bloqueios necessários. Não podemos especificar a cláusula ‘WHERE’ em uma instrução ‘TRUNCATE TABLE’, pois é tudo ou nada.
O que é DELETE?
No banco de dados SQL, DELETE significa uma instrução que exclui um ou mais registros ou dados de uma tabela. Um subconjunto pode ser definido para exclusão/exclusão usando uma condição para excluir todos os registros. Alguns sistemas de gerenciamento de banco de dados (DBM), como o MySQL, permitem que linhas sejam excluídas de várias tabelas com uma instrução DELETE, que também é chamada de DELETE de várias tabelas. A sintaxe da instrução DELETE é DELETE FROM table_name[ONDE condição]. Agora, qualquer linha que corresponda à condição ‘WHERE’ será removida da tabela. Se a cláusula ‘WHERE’ for omitida da declaração, todas as linhas da tabela serão excluídas. Portanto, a instrução ‘DELETE’ deve ser usada com cautela. Além disso, a instrução ‘DELETE’ não retorna nenhuma linha; ou seja, não irá gerar um conjunto de resultados.
Principais diferenças
- DELETE é um comando de linguagem de manipulação de dados (DML) enquanto TRUNCATE é um comando de linguagem de definição de dados (DDL).
- TRUNCATE é muito mais rápido em comparação com DELETE, pois exclui instantaneamente todos os dados.
- A condição ‘WHERE’ é necessária em DELETE.. Se a cláusula ‘WHERE’ for omitida da declaração, todas as linhas da tabela serão excluídas. Mas não podemos especificar a cláusula ‘WHERE’ em uma instrução ‘TRUNCATE TABLE’, pois é tudo ou nada.
- DELETE exclui algumas ou todas as linhas de uma tabela, enquanto TRUNCATE exclui todas as linhas.
- DELETE faz com que todos os gatilhos DELETE na tabela sejam acionados enquanto nenhum gatilho é acionado durante a operação TRUNCATE porque não é aplicável em linhas individuais.
- Delete pode ser usado com exibições indexadas, enquanto TRUNCATE não pode ser usado com exibições indexadas.
- DELETE é executado usando um bloqueio de linha e cada linha na tabela é bloqueada para exclusão, enquanto TRUNCATE é executado usando um bloqueio de tabela e a tabela inteira é bloqueada para excluir todos os registros.
Vídeo Comparativo
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded