Pular para o conteúdo
#99712
Avatar de rmanrman
Participante

    O TRUNCATE não deleta as linhas da tabelas, simplesmente ele marca na estrutura da tabela que aquela tabela está vazia… por isso é considerado como DDL, já o DELETE é um comando DML.

    Detalhe importante como o TRUNCATE é DDL, não existe ROLLBACK desta transação, ao contrario do DELETE.

    Faça um teste em uma tabela grande, verá que o TRUNCATE é instantaneo, e o DELETE vai demorar um tempo consideravel.

    1 – Sim, no caso de eliminar todos os registro de uma tabela o TRUNCATE é mais rapido que o DELETE.

    2 – O dicionario de dados, são tabelas que guardam os metadados dos objetos de banco. Imagine que existe uma tabela que possuia informações de todas as tabelas do banco, e uma coluna desta tabela é um campo booleano que indica se a tabela está vazia ou não. Pois é o TRUNCATE vai nesse registro e da um UPDATE no campo setando TRUE, de modo bem grosseiro, seria isso…

    plugins premium WordPress