Como truncar um campo em SQL


Melhor resposta

Em primeiro lugar, “NÃO É POSSÍVEL TRUNCAR UM CAMPO”.

Truncar é um conceito em banco de dados que não é como uma declaração de exclusão ou uma atualização. O conceito principal de Truncate é como os metadados por trás da cena são tratados. Se você está trabalhando com o Oracle, pode estudar um conceito chamado “High Water Mark” . Você pode encontrá-lo com detalhes no blog de Burleson aqui.

No servidor SQL se você pensar em uma chave primária com valor de incremento automático, truncar definir tudo para a base. Refiro-me ao valor inicial definido por você ou padrão 1. Então, basicamente as operações que ele faz no back end são mais específicas para metadados e mais específicas para propriedade de nível de tabela de um banco de dados.

Agora, se você queria dizer que deseja limpar uma coluna, você pode simplesmente disparar uma atualização com NULL para aquela coluna específica ou pode atualizar com .

Update TABLE

Set Column = NULL/’’

Where 1 =1

Eu mencionei este último onde porque agora muitos bancos de dados não permitem que você atualize a coluna inteira sem uma cláusula where. Em mySql , é chamado de “Sinalizador de atualização segura” . Mas para ser mais específico, sempre atualize com NULL em vez de ‘’ para seguir uma boa prática

Resposta

DELETE é uma operação registrada em uma linha. Isso significa que a exclusão de cada linha é registrada e removida fisicamente. Você pode excluir qualquer linha que não envolva uma violação de restrição, deixando a chave estrangeira ou qualquer outra restrição em vigor.

TRUNCATE é uma operação registrada, mas de uma maneira diferente. TRUNCATE registra a localização do negócio das páginas de informações nas quais existem informações. A desalocação das páginas de informações significa que suas linhas de informações ainda existem de fato nas páginas de informações, mas as extensões são marcadas como vazias para reutilização. Isso é o que torna TRUNCATE uma operação mais rápida para ser executada em vez de DELETE. Não é possível truncar uma tabela com restrições de chave estrangeira. Você deve remover as restrições, truncar a tabela e reaplicar as restrições.

TRUNCATE irá redefinir todas as colunas de identidade para a inicialização do valor padrão. Isso significa que se você tiver uma tabela com uma coluna de identidade e 264 linhas com valor inicial de 1, seu último registro terá o valor 264 (assumindo que você começou com o valor 1) nas colunas de sua identidade. Depois de truncar sua tabela ao inserir um novo registro na tabela vazia, a coluna de identidade terá um valor de 1. DELETE não terá. No mesmo cenário, se a linha atual, inserir uma nova linha na tabela vazia , a coluna de identidade tem um valor de 265.

Por que truncar é mais rápido do que Excluir?

Motivo: Em a gravação para excluir todas as informações é copiada para o espaço de tabela de rollback e, em seguida, a operação de exclusão é executada. Portanto, quando você digita ROLLBACK após excluir uma tabela, pode obter as informações (o método obtém para o ritmo das tabelas de rollback). A técnica leva tempo, mas ao usar TRUNCATE, ela remove as informações diretamente sem copiá-las para o espaço de tabela de Rollback. Portanto, TRUNCATE é mais rápido. Truncado duas vezes, você não pode recuperar as informações.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *