Vamos dividir a diferença entre os comandos truncados e excluídos no SQL.
Comando sql truncate
O comando truncate no SQL é conhecido como linguagem de definição de dados. Os comandos truncados removem os dados de uma tabela enquanto preservam a estrutura da tabela. Ao contrário do comando Delete, você não pode filtrar registros específicos usando a cláusula WHERE.
Da mesma forma, não podemos executar reversão depois de executar os comandos truncados, pois nenhum tronco é preservado para este comando.
Nota: Alguns mecanismos de banco de dados suportam reversão para comandos truncados, mas isso não é universal.
Se uma tabela fizer parte de uma visão indexada ou referenciada por uma chave estrangeira, o comando truncate não funcionará nessa tabela.
A sintaxe do comando é como mostrado:
Truncate tabela tabela_name;O comando truncate é mais rápido do que excluir, pois não executa uma varredura para os registros antes da remoção. Também garante que toda a tabela esteja bloqueada antes de remover os dados, reduzindo assim o espaço de transação.
Dependendo do mecanismo de banco de dados, você precisa de permissões explícitas para executar uma operação truncada em uma tabela. Por exemplo, no SQL Server, você precisa da permissão da tabela de alteradores. O MySQL requer permissão de queda, o PostgreSQL requer permissão truncada e o Oracle requer a queda de qualquer tabela Permissões de tabela.
SQL Excluir comando
O comando delete é um comando de manipulação de dados. Ele permite remover registros de uma tabela de banco de dados e retorna o número de registros excluídos. Os comandos delete removem as linhas de uma tabela e não a tabela inteira do banco de dados.
Ao contrário do comando truncate, o comando delete permite filtrar os registros de destino usando a cláusula onde.
A sintaxe do comando é mostrada abaixo:
Exclua da tabela_name;Para filtrar registros específicos, você pode usar a sintaxe como mostrado abaixo:
Exclua da tabela_name onde condição;Nota: Se você não especificar as colunas de destino, o comando removerá todos os registros da tabela fornecida.
Ao contrário do comando truncate, que trava a tabela inteira, o comando delete bloqueia linhas individuais que levam a um espaço de transação mais alto, especialmente em uma tabela grande.
Para executar um comando de exclusão em uma tabela, você precisa da permissão de exclusão.
Tabela de resumo
A tabela a seguir resume as diferenças entre os comandos SQL Excluir e Truncate.
SQL truncado | SQL Excluir | |
---|---|---|
Tipo | Linguagem de definição de dados | Linguagem de manipulação de dados |
Tipo de bloqueio | Mesa | Linha |
Reversão | Alguns mecanismos de banco de dados | Sim |
Logs de transação | Tabela inteira | Por linha |
Uso do espaço da transação | Menos | Mais alto |
Suporte de gatilho | Não | Sim |
Velocidade | Muito rápido | Lento |
Tipo de remoção | Todas as linhas | Todas ou linhas específicas (conforme especificado) |
Funciona com uma visão indexada? | Não | Sim |
Redefinição da coluna de identidade | Alguns mecanismos de banco de dados | Não |
Retorna os registros removidos? | Não | Sim |
Na maioria dos casos, a escolha do melhor tipo de operação dependerá de suas necessidades específicas. No entanto, considere os seguintes pontos:
Conclusão
Este artigo discute dois comandos fundamentais para remover dados em um banco de dados SQL. Usando este guia, você pode especificar explicitamente o que o comando truncate ou o comando delete faz em um banco de dados relacional. Esperamos que você tenha achado este artigo útil. Verifique os outros artigos de dica do Linux para obter mais dicas e tutoriais.