SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLite - Supprimer une table

Pour supprimer une table dans SQLite, utilisez le DROP TABLE déclaration.

L'exécution de cette instruction supprime la table de la base de données. Il est complètement supprimé du schéma de la base de données et du fichier disque. Par conséquent, la table ne peut pas être récupérée. Tous les index et déclencheurs associés à la table sont également supprimés.

Un DROP TABLE de base Déclaration

Examinons d'abord les tables de notre base de données :

sqlite> .tables
Albums   Albums1  Albums2  Artists

Nous avons quelques tables de rechange de nos exercices précédents, alors laissons-en une.

Le code suivant supprime les Albums1 tableau :

DROP TABLE Albums1;

Après avoir exécuté ce code, nous pouvons revoir nos tables :

sqlite> .tables
Albums   Albums2  Artists

Le tableau a été supprimé.

Vérifier si le tableau existe

Vous pouvez utiliser le IF EXISTS clause pour vérifier si la table existe avant que SQLite n'essaie de la supprimer.

Cela évite les erreurs qui seraient normalement générées si la table n'existe pas.

Essayons d'abord de supprimer une table inexistante sans en utilisant le IF EXISTS clause. Essayons de supprimer celui que nous venons de supprimer :

DROP TABLE Album1;

Il en résulte ce qui suit :

sqlite> DROP TABLE Album1;
Error: no such table: Album1

OK, alors réessayons, mais cette fois avec le IF EXISTS clause :

DROP TABLE IF EXISTS Album1;

Résultat :

sqlite> DROP TABLE IF EXISTS Album1;
sqlite> 

Donc rien ne s'est passé. Surtout, aucune erreur n'a été générée.

Déposer une table avec des clés primaires

Que se passe-t-il si nous essayons de supprimer une table contenant des clés primaires et qu'il existe des clés étrangères qui y font référence ?

Essayons :

DROP TABLE Artists;

Résultat :

sqlite> DROP TABLE Artists;
Error: FOREIGN KEY constraint failed

Comme prévu, cela a échoué. Donc, si vous devez supprimer une table, vous devrez d'abord supprimer toutes les tables associées.

SQLite essaie en fait de supprimer les données avant de supprimer une table. C'est cette action de suppression qui provoque la vérification des contraintes de clé étrangère.

SQLite supprime également tous les index ou déclencheurs associés à la table avant d'effectuer l'opération de suppression (et de suppression ultérieure).