In SQLite können wir das sqlite_schema
abfragen table, um herauszufinden, ob eine bestimmte Tabelle existiert.
Vor SQLite-Version 3.33.0 wurde diese Tabelle als sqlite_master
bezeichnet (Aus Gründen der Abwärtskompatibilität kann es in späteren Versionen immer noch so bezeichnet werden).
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT EXISTS (
SELECT
name
FROM
sqlite_schema
WHERE
type='table' AND
name='Customers'
);
Ergebnis:
1
In diesem Fall existiert die Tabelle und 1
zurückgegeben wird.
Hier ist ein Beispiel dafür, was passiert, wenn die Tabelle nicht existiert:
SELECT EXISTS (
SELECT
name
FROM
sqlite_schema
WHERE
type='table' AND
name='Inventory'
);
Ergebnis:
0
Der sqlite_master
Tabelle
Dieselbe Abfrage kann mit sqlite_master
ausgeführt werden statt sqlite_schema
:
SELECT EXISTS (
SELECT
name
FROM
sqlite_master
WHERE
type='table' AND
name='Customers'
);
Ergebnis:
1
Sie können auch sqlite_temp_schema
verwenden oder sqlite_temp_master
, aber diese funktionieren nur für TEMP
Datenbank, die jeder Datenbankverbindung zugeordnet ist.