En SQLite, podemos consultar el sqlite_schema
table para averiguar si existe una tabla dada.
Antes de la versión 3.33.0 de SQLite, esta tabla se denominaba sqlite_master
(todavía se puede hacer referencia a él como tal en versiones posteriores para la compatibilidad con versiones anteriores).
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT EXISTS (
SELECT
name
FROM
sqlite_schema
WHERE
type='table' AND
name='Customers'
);
Resultado:
1
En este caso, la tabla existe y 1
es devuelto.
Este es un ejemplo de lo que sucede cuando la tabla no existe:
SELECT EXISTS (
SELECT
name
FROM
sqlite_schema
WHERE
type='table' AND
name='Inventory'
);
Resultado:
0
El sqlite_master
Mesa
La misma consulta se puede ejecutar usando sqlite_master
en lugar de sqlite_schema
:
SELECT EXISTS (
SELECT
name
FROM
sqlite_master
WHERE
type='table' AND
name='Customers'
);
Resultado:
1
También puede usar sqlite_temp_schema
o sqlite_temp_master
, pero estos solo funcionan para TEMP
base de datos asociada con cada conexión de base de datos.