SQLite Truncate Table

Dans SQLite, il n'existe pas de commande TRUNCATE TABLE, mais vous pouvez utiliser la commandeDELETEDELETE de SQLite pour supprimer toutes les données d'une table existante.

Syntaxe

La syntaxe de base de la commande DELETE est la suivante :

sqlite> DELETE FROM table_name;

Cependant, cette méthode ne permet pas de réinitialiser la valeur d'auto-incrémentation à zéro.

Si vous souhaitez réinitialiser la valeur d'incrémentation à zéro, vous pouvez utiliser la méthode suivante :

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

Lorsqu'une base de données SQLite contient une colonne auto-incrémentée, une table nommée sqlite_sequence est automatiquement créée. Cette table contient deux colonnes : name et seq. name enregistre la table dans laquelle se trouve la colonne auto-incrémentée, et seq enregistre le numéro de séquence actuel (le numéro de l'enregistrement suivant est le numéro de séquence actuel plus 1). Si vous souhaitez réinitialiser à zéro le numéro de séquence d'une colonne auto-incrémentée particulière, il vous suffit de modifier la table sqlite_sequence.

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

Exemples

Supposons que la table COMPANY contienne les enregistrements suivants :

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

Voici un exemple de suppression d'enregistrements de la table ci-dessus :

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

Maintenant, les enregistrements de la table COMPANY ont été complètement supprimés, et l'utilisation de l'instruction SELECT ne produira aucune sortie.

Autres extensions