Hola, quiero eliminar todos los datos en mis tablas de postgresql, pero no la tabla en sí. ¿Cómo podría hacer esto?
postgresql
vo1d
fuente
fuente
Respuestas:
Usa el
TRUNCATE TABLE
comando.fuente
El contenido de la tabla / tablas en la base de datos PostgreSQL se puede eliminar de varias formas.
Eliminar el contenido de la tabla usando sql:
Eliminar contenido de una tabla:
Eliminar contenido de todas las tablas nombradas:
Eliminación de contenido de tablas con nombre y tablas que hacen referencia a ellas (lo explicaré con más detalles más adelante en esta respuesta):
Eliminando el contenido de la tabla usando pgAdmin:
Eliminar contenido de una tabla:
Eliminando el contenido de la tabla y las tablas que hacen referencia a ella:
Diferencia entre eliminar y truncar:
De la documentación:
Trabajar con una tabla a la que se hace referencia desde otra tabla:
Cuando tiene una base de datos que tiene más de una tabla, las tablas probablemente tengan relación. Como ejemplo, hay tres tablas:
Y algunos datos preparados para estas tablas:
Los pedidos de la tabla hacen referencia a los clientes de la tabla y la tabla loyalty_cards hace referencia a los clientes de la tabla. Cuando intenta TRUNCAR / ELIMINAR DE la tabla a la que hacen referencia otras tablas (las otras tablas tienen una restricción de clave externa a la tabla nombrada), obtiene un error. Para eliminar contenido de las tres tablas, debe nombrar todas estas tablas (el orden no es importante)
o simplemente la tabla a la que se hace referencia con la palabra clave CASCADA (puede nombrar más tablas que solo una)
Lo mismo se aplica a pgAdmin. Haga clic derecho en la tabla de clientes y seleccione Truncar en cascada.
fuente
TRUNCATE
es parte de ANSI SQL y es compatible con todos los DBMS. Seguí el enlace y el documento no menciona nada sobre extensiones. ¿Quizás el enlace es incorrecto o no está actualizado?Para tablas pequeñas
DELETE
suele ser más rápido y necesita un bloqueo menos agresivo (para cargas concurrentes pesadas):Sin
WHERE
condición.Para tablas medianas o más grandes , vaya con
TRUNCATE tbl
, como @Greg publicado.fuente