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.