Todos os produtos
Search
Central de documentação

Hologres:TRUNCATE

Última atualização: Jun 28, 2026

O comando TRUNCATE remove todas as linhas de uma tabela instantaneamente.

Limitações

  • O Hologres oferece suporte a sequências apenas com CONTINUE IDENTITY, e não com RESTART IDENTITY.

  • O TRUNCATE funciona em tabelas padrão, tabelas pai particionadas e tabelas filho particionadas.

  • O TRUNCATE não funciona em tabelas externas.

Sintaxe

TRUNCATE [ TABLE ] name [, ... ]
    [ CONTINUE IDENTITY ]

A opção CONTINUE IDENTITY preserva o valor atual de qualquer sequência associada. Esse é o comportamento padrão.

Nota
  • O TRUNCATE não gera binary logs.

    Comportamento por versão:

  • Antes da V3.1: O TRUNCATE é uma instrução de Data Definition Language (DDL). Executá-lo em uma tabela com binary logging ativado não produz erros nem binary logs.

  • V3.1 e posteriores: O TRUNCATE é uma instrução de Data Manipulation Language (DML). Essa mudança reduz a carga no frontend (FE) quando se chama o TRUNCATE frequentemente. A execução desse comando em uma tabela com binary logging ativado retorna um erro. Para resolver, adote uma das seguintes abordagens no nível da sessão:

    • Opção 1 (recomendada): Execute o comando como DDL definindo SET hg_enable_truncate_as_dml = off.

    • Opção 2: Desative o binary logging definindo SET hg_experimental_generate_binlog = off. Essa configuração afeta todas as tabelas e operações DML. Para mais detalhes, consulte Desativar binary logging para operações DML em uma tabela.

Exemplos

Truncar uma tabela regular

CREATE TABLE event (
    id INT,
    name text,
    tag text
);
INSERT INTO event (id, name, tag) VALUES (23, 'buy', 'num');

-- Verify rows exist before truncation
SELECT * FROM event;

TRUNCATE TABLE event;

Truncar uma tabela com coluna de sequência

O CONTINUE IDENTITY é o padrão. O contador da sequência não é redefinido após o truncamento.

CREATE TABLE event_1 (
    id serial,
    name text,
    tag text
);
INSERT INTO event_1 (name, tag) VALUES ('buy', 'num');

-- Verify rows exist before truncation
SELECT * FROM event_1;

# CONTINUE IDENTITY is the default.
TRUNCATE TABLE event_1 CONTINUE IDENTITY;