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:

CREATE TABLE

Sintaxe

TRUNCATE [ TABLE ] [ IF EXISTS ] <name>
Copy

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 ou schema_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        |
----------+
Copy