TRUNCATE TABLE¶
Remove todas as linhas de uma tabela, mas deixa a tabela intacta (incluindo todos os privilégios e restrições relacionados à tabela). Também exclui os metadados de carregamento da tabela, o que permite que os mesmos arquivos sejam carregados novamente na tabela após o término do comando.
Observe que isto é diferente de DROP TABLE, que remove a tabela do sistema mas retém uma versão da tabela (junto com seu histórico de carregamento) para que possam ser recuperados.
- Consulte também:
Sintaxe¶
TRUNCATE [ TABLE ] [ IF EXISTS ] <name>
Parâmetros¶
name
Especifica o identificador da tabela a ser truncada. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas (por exemplo,
"My Object"
).Se o identificador da tabela não estiver totalmente qualificado (na forma de
db_name.schema_name.table_name
ouschema_name.table_name
), o comando procura a tabela no esquema atual para a sessão.
Notas de uso¶
Tanto DELETE como TRUNCATE TABLE mantêm os dados excluídos para fins de recuperação (isto é, utilizando o Time Travel) durante o período de retenção de dados. Entretanto, quando uma tabela é truncada, os metadados de carregamento não podem ser recuperados.
A palavra-chave
TABLE
é opcional se o nome da tabela for totalmente qualificado ou se um banco de dados e um esquema estiverem em uso atualmente para a sessão.
Exemplos¶
-- create a basic table CREATE OR REPLACE TABLE temp (i number); -- populate it with some rows INSERT INTO temp SELECT seq8() FROM table(generator(rowcount=>20)) v; -- verify that the rows exist SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 20 | ----------+ -- truncate the table TRUNCATE TABLE IF EXISTS temp; -- verify that the table is now empty SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 0 | ----------+