English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderá cómo usar SQL para eliminar todas las filas de una tabla de manera rápida.
La sentencia TRUNCATE TABLE es más rápida que DELETE para eliminar todas las filas de la tabla. En términos lógicos, TRUNCATE TABLE es similar aDELETEsinWHEREcláusula de sentencia.
La sentencia TRUNCATE TABLE elimina todas las filas de la tabla, pero mantiene la estructura de la tabla y sus columnas, restricciones, índices, etc. Para eliminar la tabla y sus datos, puede usar estaDROP TABLEsentencias, pero debe actuar con cautela.
Sintaxis básica de TRUNCATE TABLE:
TRUNCATE TABLE table_name;
Vamos a realizar una operación de vaciado en la tabla de la base de datos.
Considere que en nuestra base de datos tenemosemployeecontiene los siguientes registros:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | fecha_contratación | salario | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 4 | | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
Las siguientes órdenes desdeemployeeseliminar todas las filas de la tabla:
TRUNCATE TABLE employees;
Ahora, después de ejecutar la sentencia SQL anterior, si intenta obteneremployeeen la tablaseleccionar registrosobtendrá un conjunto de resultados vacío.
A pesar de que DELETE y TRUNCATE TABLE parecen tener el mismo efecto, su modo de funcionamiento es diferente. Aquí hay algunas diferencias principales entre estas dos sentencias:
La sentencia TRUNCATE TABLE elimina y crea la tabla de nuevo, y restablece cualquier valor de增进 automático a su valor inicial (generalmente 1).1)
DELETE le permite filtrar las filas que desea eliminar según la cláusula WHERE opcional, mientras que TRUNCATE TABLE no admite la cláusula WHERE y solo elimina todas las filas.
En comparación con DELETE, TRUNCATE TABLE es más rápido y utiliza menos recursos del sistema, porque DELETE escanea la tabla para generar el número de filas afectadas, luego elimina filas por filas y registra una entrada en el registro de la base de datos para cada fila eliminada, mientras que TRUNCATE TABLE solo elimina todas las filas sin proporcionar otra información.
Consejo:Si solo desea eliminar todas las filas y recrear toda la tabla, utilice TRUNCATE TABLE. Si desea eliminar un número limitado de filas basado en condiciones específicas o no desea restablecer el valor de增进自动, utilice DELETE.