SQLite Truncate Table

In SQLite, there is no TRUNCATE TABLE command, but you can use SQLite'sDELETEDELETE command to delete all data from an existing table.

Syntax

The basic syntax of the DELETE command is as follows:

sqlite> DELETE FROM table_name;

However, this method cannot reset the auto-increment value to zero.

If you want to reset the increment value to zero, you can use the following method:

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

When a SQLite database contains an auto-increment column, a table named sqlite_sequence is automatically created. This table contains two columns: name and seq. name records the table where the auto-increment column is located, and seq records the current sequence number (the number of the next record is the current sequence number plus 1). If you want to reset the sequence number of a particular auto-increment column to zero, you just need to modify the sqlite_sequence table.

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

Examples

Suppose the COMPANY table has the following records:

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

Below is an example of deleting records from the above table:

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

Now, the records in the COMPANY table have been completely deleted, and using the SELECT statement will produce no output.

Other Extensions