TRUNCATE

Nome

TRUNCATE -- esvazia uma tabela ou conjunto de tabelas

Sinopse

TRUNCATE [ TABLE ] nome [, ...] [ CASCADE | RESTRICT ]

Descrição

O comando TRUNCATE remove rapidamente todas as linhas de um conjunto de tabelas. Possui o mesmo efeito do comando DELETE não qualificado (sem a cláusula WHERE), mas como na verdade não varre a tabela é mais rápido. É mais útil em tabelas grandes.

Parâmetros

nome

O nome (opcionalmente qualificado pelo esquema) da tabela a ser truncada.

CASCADE

Trunca, automaticamente, todas as tabelas contendo referência de chave estrangeira para qualquer uma das tabelas especificadas, ou para qualquer uma das tabelas adicionadas ao grupo devido à cláusula CASCADE.

RESTRICT

Recusa truncar se qualquer uma das tabelas possuir referência de chave estrangeira de uma tabela que não será truncada. Este é o padrão.

Observações

Somente o dono da tabela pode truncá-la.

O comando TRUNCATE não pode ser utilizado em uma tabela que possui referência de chave estrangeira de outras tabelas, a menos que todas estas outras tabelas também sejam truncadas no mesmo comando. Neste caso, a verificação da validade exigiria a varredura da tabela, e o objetivo principal é não fazer a varredura. A opção CASCADE pode ser utilizada para incluir, automaticamente, todas as tabelas dependentes — mas deve-se ter muito cuidado quando se utiliza esta opção, senão poderão ser perdidos dados que não eram para ser apagados!

O comando TRUNCATE não executa os gatilhos ON DELETE definidos pelo usuário existentes nas tabelas.

Exemplos

Truncar as tabelas tbl_grande e tbl_inchada:

TRUNCATE TABLE tbl_grande, tbl_inchada;

Truncar a tabela tbl_outra, truncando em cascata todas as tabelas que fazem referência à tabela tbl_outra através de restrição de chave estrangeira:

TRUNCATE tbl_outra CASCADE;

Compatibilidade

Não existe o comando TRUNCATE no padrão SQL.

SourceForge.net Logo CSS válido!