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

Comment vérifier si une table existe dans SQLite

Dans SQLite, nous pouvons interroger le sqlite_schema table pour savoir si une table donnée existe.

Avant la version 3.33.0 de SQLite, cette table était appelée sqlite_master (il peut toujours être référencé comme tel dans les versions ultérieures pour une compatibilité descendante).

Exemple

Voici un exemple pour illustrer :

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Résultat :

1

Dans ce cas, la table existe et 1 est renvoyé.

Voici un exemple de ce qui se passe lorsque la table n'existe pas :

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Inventory'
    );

Résultat :

0

Le sqlite_master Tableau

La même requête peut être exécutée en utilisant sqlite_master au lieu de sqlite_schema :

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_master 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Résultat :

1

Vous pouvez également utiliser sqlite_temp_schema ou sqlite_temp_master , mais ceux-ci ne fonctionnent que pour le TEMP base de données associée à chaque connexion à la base de données.