SQLite Truncate Table

En SQLite, no existe el comando TRUNCATE TABLE, pero se puede usar el comando de SQLiteDELETEpara eliminar todos los datos de la tabla existente.

Sintaxis

La sintaxis básica del comando DELETE es la siguiente:

sqlite> DELETE FROM table_name;

Pero este método no puede poner a cero el número de incremento.

Si desea poner a cero el número de incremento, puede utilizar el siguiente método:

sqlite> DELETE FROM sqlite_sequence WHERE name = 'table_name';

Cuando la base de datos SQLite contiene una columna de autoincremento, se crea automáticamente una tabla llamada sqlite_sequence. Esta tabla contiene dos columnas: name y seq. name registra la tabla donde se encuentra la columna de autoincremento, y seq registra el número de secuencia actual (el número del siguiente registro es el número de secuencia actual más 1). Si desea poner a cero el número de secuencia de una columna de autoincremento, solo necesita modificar la tabla sqlite_sequence.

UPDATE sqlite_sequence SET seq = 0 WHERE name = 'table_name';

Ejemplo

Supongamos que la tabla COMPANY tiene los siguientes registros:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

A continuación se muestra el ejemplo de eliminación de los registros de la tabla anterior:

SQLite> DELETE FROM sqlite_sequence WHERE name = 'COMPANY';
SQLite> VACUUM;

Ahora, los registros de la tabla COMPANY se han eliminado por completo, y el uso de la sentencia SELECT no producirá ninguna salida.

Otras extensiones