Ir al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL DELETE

La sentencia `DELETE` de PostgreSQL se utiliza para eliminar filas de una tabla. Permite eliminar registros concretos en función de una condición, o todos los registros si no se especifica ninguna condición.

Utilización

La sentencia `DELETE` se emplea cuando necesitas eliminar datos de una tabla. Se suele utilizar para borrar datos obsoletos o incorrectos.

DELETE FROM table_name
[WHERE condition];

En esta sintaxis, `DELETE FROM nombre_tabla` especifica la tabla de la que quieres eliminar filas, mientras que la condición opcional `WHERE` determina qué filas eliminar.

Ejemplos

1. Borrar todas las filas

DELETE FROM users;

Este ejemplo elimina todos los registros de la tabla "usuarios", vaciándola.

2. Eliminar con una condición

DELETE FROM orders
WHERE order_date < '2023-01-01';

Aquí, el comando elimina todas las filas de la tabla `pedidos` en las que la `fecha_pedido` es anterior al 1 de enero de 2023.

3. Borrar con una subconsulta

DELETE FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE name = 'HR');

Este ejemplo elimina los empleados que pertenecen al departamento de RRHH utilizando una subconsulta para identificar los `department_id`s relevantes.

Consejos y buenas prácticas

  • Utilízalo con precaución. Asegúrate siempre de que la cláusula "DONDE" es correcta para evitar pérdidas de datos involuntarias.
  • Copia de seguridad de los datos. Considera la posibilidad de hacer una copia de seguridad de tu tabla o base de datos antes de realizar eliminaciones a gran escala.
  • Verifícalo con SELECCIONAR. Ejecuta una sentencia `SELECT` con la misma condición `WHERE` para comprobar qué filas se eliminarán.
  • Utiliza "RETURNO". Si es necesario, utiliza la cláusula `RETURNING` para mostrar las filas que se han eliminado, lo que puede ser útil con fines de verificación o auditoría.
  • Limita las eliminaciones. En tablas de gran volumen, considera la posibilidad de borrar por lotes para minimizar los bloqueos de tabla y los impactos en el rendimiento.
  • Piensa en CASCADE. Al eliminar filas de una tabla que tiene restricciones de clave externa, puedes utilizar la opción `CASCADE` para eliminar automáticamente cualquier fila dependiente en tablas relacionadas.
  • Gestión de la concurrencia. Ten en cuenta que las operaciones `DELETE` concurrentes pueden provocar condiciones de carrera. Utiliza transacciones o mecanismos de bloqueo adecuados para gestionar las eliminaciones concurrentes.
  • Consideraciones sobre el rendimiento. Optimiza las operaciones `DELETE` asegurándote de que existen índices para las condiciones de la cláusula `WHERE`, especialmente en tablas grandes, para mejorar el rendimiento.