Tiempo de lectura:2 Minutos, 29 Segundos

El comando truncate table en PostgreSQL se utiliza para eliminar todos los registros de una tabla de una manera mucho más rápida que con el comando delete. El motivo por el que el comando truncate es más eficiente que el comando delete, es que este ultimo, hace un escaneo de la tabla antes de borrar y el truncate no realiza ese escaneo. Además el comando truncate recupera el almacenamiento de inmediato evitando así tener que ejecutar el comando vacumm para recuperarlo. Casi todo ventajas…

Sintaxis

Ejecuta la siguiente sentencia para eliminar todos los registros de una tabla:

En la anterior sintaxis:

  • Escribimos después de la palabra TRUNCATE TABLE el nombre de la tabla de la que queremos borrar sus datos.

Ejemplo

Truncar una tabla

En el siguiente ejemplo borramos todos los registros de la tabla empleados:

Truncar una tabla reiniciando secuencias

Es importante que sepas que si truncas una tabla y tiene asociado alguna secuencia, esta no volverá a empezar de cero al no ser que se lo indiques. Para resolverlo trunca la tabla de este modo:

En el siguiente ejemplo borramos los registros de la tabla recursos y ademas reincidamos las secuencias asociadas a la tabla.

En el siguiente ejemplo borramos los registros de la tabla recursos y le indicamos que no reinicie las secuencias asociadas a la tabla (esto es lo mismo que escribir truncate table directamente.)

Truncar varias tablas

De forma similar a cuando borramos los registros de una tabla, podemos hacer lo mismo con varias tablas al mismo tiempo. Su sintaxis es:

En el siguiente ejemplo podemos ver como se borran los registros de las tablas recursos y empleados:

Truncar tabla y todo objeto que depende de ella

Si la tabla tiene una clave externa (foreign key) con otra tabla por defecto PostgreSQL no eliminara los datos de la otra tabla. Si quieres que se borren en ambas tablas debes lanzar el siguiente comando:

En el siguiente ejemplo estamos eliminado datos de la tabla recursos pero ademas estamos borramos datos de aquellas tablas que tengan referencias a la tabla recursos.

Usa la opción CASCADE con precaución, puedes borrar datos en tablas que no has tenido en cuenta. Si tienes una tabla con claves externas y no usas la opción CASCADE no te permitirá realizar el truncado, esto se debe a que por defecto el comando truncate table usa la opción restrict para prevenir este tipo de problemas.

Funcionamiento con disparadores (triggers)

Ten encuenta que si utilizas el comando truncate si tienes un disparador ON DELETE no te funcionara. Debes usar el disparador correspondiente al comando truncate que son: BEFORE TRUNCATE y AFTER TRUNCATE.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Perfiles en Redes Sociales