W SQLite możemy zapytać o sqlite_schema
tabeli, aby dowiedzieć się, czy dana tabela istnieje.
Przed wersją SQLite 3.33.0 ta tabela była określana jako sqlite_master
(nadal może być określany jako taki w kolejnych wydaniach w celu zapewnienia kompatybilności wstecznej).
Przykład
Oto przykład do zademonstrowania:
SELECT EXISTS (
SELECT
name
FROM
sqlite_schema
WHERE
type='table' AND
name='Customers'
);
Wynik:
1
W tym przypadku tabela istnieje i 1
jest zwracany.
Oto przykład tego, co się dzieje, gdy tabela nie istnieje:
SELECT EXISTS (
SELECT
name
FROM
sqlite_schema
WHERE
type='table' AND
name='Inventory'
);
Wynik:
0
sqlite_master
Tabela
To samo zapytanie można uruchomić za pomocą sqlite_master
zamiast sqlite_schema
:
SELECT EXISTS (
SELECT
name
FROM
sqlite_master
WHERE
type='table' AND
name='Customers'
);
Wynik:
1
Możesz także użyć sqlite_temp_schema
lub sqlite_temp_master
, ale działają one tylko dla TEMP
baza danych powiązana z każdym połączeniem z bazą danych.