Todos los productos
Search
Centro de documentos

Hologres:TRUNCATE

Última actualización: Sep 05, 2026

TRUNCATE elimina todas las filas de una tabla de forma instantánea.

Limitaciones

  • Hologres admite secuencias, pero solo CONTINUE IDENTITY, no RESTART IDENTITY.

  • TRUNCATE funciona en tablas estándar, tablas de partición principales y tablas de partición secundarias.

  • TRUNCATE no funciona en tablas externas.

Sintaxis

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

CONTINUE IDENTITY conserva el valor actual de cualquier secuencia asociada. Este es el comportamiento predeterminado.

Nota
  • TRUNCATE no genera registros binarios.

    Comportamiento por versión:

  • Antes de V3.1: TRUNCATE es una instrucción de lenguaje de definición de datos (DDL). Ejecutarla en una tabla con registro binario habilitado no produce errores ni genera registros binarios.

  • V3.1 y posteriores: TRUNCATE es una instrucción de lenguaje de manipulación de datos (DML). Esto reduce la carga en el frontend (FE) cuando TRUNCATE se invoca con frecuencia. Ejecutarla en una tabla con registro binario habilitado devuelve un error. Para resolverlo, utilice uno de los siguientes métodos en la sesión:

    • Opción 1 (recomendada): Ejecute la operación como DDL mediante SET hg_enable_truncate_as_dml = off.

    • Opción 2: Deshabilite el registro binario mediante SET hg_experimental_generate_binlog = off. Esta configuración afecta a todas las tablas y operaciones DML. Para más detalles, consulte Disable binary logging for DML operations on a table.

Ejemplos

Vaciar una tabla 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;

Vaciar una tabla con una columna de secuencia

CONTINUE IDENTITY es el valor predeterminado. El contador de la secuencia no se restablece después de vaciar la tabla.

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;