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>

TRUNCATE [ TABLE ] [ IF EXISTS ] ERROR_TABLE( <base_table_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 ou schema_name.table_name), o comando procura a tabela no esquema atual para a sessão.

ERROR_TABLE( base_table_name )

Trunca a tabela de erros associada à tabela base especificada. Para obter mais informações sobre tabelas de erros, consulte Registro de erros de DML.

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

O seguinte exemplo trunca uma tabela:

  1. Crie uma tabela básica e insira os dados:

    CREATE OR REPLACE TABLE temp_test_truncate (i number);
    
    INSERT INTO temp_test_truncate SELECT seq8() FROM table(generator(rowcount=>20)) v;
    
    SELECT COUNT (*) FROM temp_test_truncate;
    
    +-----------+
    | COUNT (*) |
    |-----------|
    |        20 |
    +-----------+
    
  2. Trunque a tabela:

    TRUNCATE TABLE IF EXISTS temp_test_truncate;
    
  3. Verifique se a tabela agora está vazia:

    SELECT COUNT (*) FROM temp_test_truncate;
    
    +-----------+
    | COUNT (*) |
    |-----------|
    |         0 |
    +-----------+