TRUNCATE - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog.

TRUNCATE

Elimina todas las filas de una tabla sin realizar un análisis de la tabla: esta operación es una alternativa más rápida a una operación DELETE no calificada. Para ejecutar un comando TRUNCATE, debe tener el permiso TRUNCATE de la tabla, ser el propietario de la tabla o ser un superusuario. Para conceder permisos para truncar una tabla, utilice el comando GRANT.

TRUNCATE es mucho más eficiente que DELETE y no requiere VACUUM ni ANALYZE. No obstante, tenga en cuenta que TRUNCATE confirma la transacción en la que se ejecuta.

Sintaxis

TRUNCATE [ TABLE ] table_name

El comando también funciona en una vista materializada.

TRUNCATE materialized_view_name

Parámetros

TABLE

Palabra clave opcional.

table_name

Una tabla temporal o persistente. Solo el propietario de la tabla o un superusuario puede truncarla.

Puede truncar cualquier tabla, incluidas las tablas a las que se hace referencia en limitaciones de clave externa.

No es necesario limpiar una tabla después de truncarla.

materialized_view_name

Una vista materializada.

Puede truncar una vista materializada que se utilice para Ingesta de streaming a una vista materializada.

Notas de uso

  • El comando TRUNCATE confirma la transacción en la que se ejecuta; por lo tanto, no se puede revertir una operación TRUNCATE, y un comando TRUNCATE puede confirmar otras operaciones cuando se confirma a sí mismo.

  • Las operaciones TRUNCATE mantienen bloqueos exclusivos cuando se ejecutan en vistas materializadas de streaming de Amazon Redshift conectadas a cualquiera de las siguientes opciones:

    • Un flujo de datos de Amazon Kinesis

    • Una transmisión gestionada de Amazon para el tema de Apache Kafka

    • Una transmisión externa compatible, como un tema de Confluent Cloud Kafka

    Para obtener más información, consulte Ingesta de streaming a una vista materializada.

Ejemplos

Utilice el comando TRUNCATE para eliminar todas las filas de la tabla CATEGORY:

truncate category;

Intento de revertir una operación TRUNCATE:

begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)

La tabla DATE permanece vacía después del comando ROLLBACK ya que el comando TRUNCATE se confirmó automáticamente.

En el siguiente ejemplo, se utiliza el comando TRUNCATE para eliminar todas las filas de una vista materializada.

truncate my_materialized_view;

Elimina todos los registros de la vista materializada y deja intactos la vista materializada y su esquema. En la consulta, el nombre de la vista materializada es un ejemplo.