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 permisos TRUNCATE TABLE, debe ser el propietario de la tabla o 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.
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.