Este comando exclui todas as linhas de uma tabela ou de uma lista de tabelas de forma mais rápida que o comando DELETE tradicional. Apenas o owner de uma tabela pode eliminar seus dados com o comando TRUNCATE.
É recomendado o prudência no uso deste comando, especialmente com a cláusula CASCADE, pois informações relevantes podem ser eliminadas.
Sintaxe:
TRUNCATE [ TABLE ] name [, ...] [ CASCADE | RESTRICT ]
A cláusula CASCADE elimina tabelas referenciadas pela tabela que sofre o TRUNCATE. A cláusula RESTRICT é o padrão e faz o TRUNCATE apenas da tabela explicitamente citada no comando, retornando erro caso haja alguma violação de restrição de integridade. Não é permitido TRUNCATE se a tabela truncada é referenciada por uma tabela filha através de foreign key:
ERROR: cannot truncate a table referenced in a foreign key constraint
SQL state: 0A000
Detail: Table "tstdel3" references "tstdel".
Hint: Truncate table "tstdel3" at the same time, or use TRUNCATE ... CASCADE.
Alguns exemplos:
1 - Exclusão de registros de uma tabela com a cláusula TABLE
TRUNCATE TABLE tstdel;
2 - Exclusão de registros com referência a um esquema
TRUNCATE public.tstdel;
3 - Sintaxe smplificada
TRUNCATE tstdel;
4 - Exclusão de mais de uma tabela ao mesmo tempo
TRUNCATE tstdel, tstdel2;
5 - Exclusão com cláusula CASCADE
TRUNCATE tstdel CASCADE;
Obs.: O comando EXPLAIN não funciona com o comando TRUNCATE, gerando mensagem de erro.
Obs.2: A especificação padrão da linguagem SQL não apresenta o comando TRUNCATE.
Nenhum comentário:
Postar um comentário