22 Voix

SQLite: Tester si une Table existe

Info de Stefan Trost | 22/02/2023 à 21:30

Parfois, nous voulons d'abord vérifier si une certaine table existe avant d'exécuter une instruction SQL. Cela peut être nécessaire, par exemple, avant de créer une table et de vous assurer qu'aucune table ne porte déjà ce nom. Ou nous aimerions écrire des données dans une table ou lire des données d'une table et ne savons pas encore si la table en question existe déjà. Dans cette situation également, un examen peut avoir du sens pour éviter un message d'erreur et pour pouvoir créer le tableau si nécessaire.

Dans ce tutoriel, nous aimerions voir quelles options sont disponibles dans ce contexte avec SQLite. La première chose importante pour cela est la table "sqlite_master" qui est gérée par SQLite lui-même. Dans cette table, il y a les noms de toutes les tables existantes qui peuvent également être interrogées en l'utilisant.

Voici un exemple de vérification de l'existence de la table "tab":

SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'tab';

Si le résultat de cette requête est vide, nous savons que la table n'existe pas.

Tables Temporaires

Important: Les tables temporaires ne peuvent pas être récupérées à partir de "sqlite_master" car elles sont répertoriées dans "sqlite_temp_master". Si nous sommes intéressés par les tables temporaires, nous pouvons simplement remplacer "sqlite_master" par "sqlite_temp_master" dans la requête ci-dessus.

SELECT name FROM sqlite_temp_master WHERE type = 'table' AND name = 'tab_temp';

Ici, nous testons l'existence d'une table temporaire appelée "tab_temp".

Créer Table seulement si elle n'existe pas

Pour certaines applications, d'autres solutions sont plus faciles à mettre en œuvre. Par exemple, imaginons que l'un de nos programmes ait besoin de tables dans notre base de données. Lors du démarrage du programme, il n'est pas certain que le programme ait déjà été démarré et que les tables appropriées soient déjà créées. Par conséquent, nous aimerions vérifier si une table spécifique existe déjà afin de ne pouvoir créer la nouvelle table que si ce n'est pas le cas.

CREATE TABLE IF NOT EXISTS 'tab' (...);

Dans ce cas, l'instruction "CREATE TABLE IF NOT EXISTS" peut être la méthode la plus simple. Cette instruction est équivalente à l'instruction "CREATE TABLE" mais elle est complétée par "IF NOT EXISTS". Cela signifie que la nouvelle table n'est créée que si elle n'existe pas encore. Cela vous évite le détour de vérifier cela avant.

RépondrePositifNégatif

Sur l’Auteur

AvatarVous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil

 

Sujets Connexes

VirtualBox: Changer la Date et l'Heure

Tutoriel | 10 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.