SQLite
 sql >> Datenbank >  >> RDS >> SQLite

So prüfen Sie, ob eine Tabelle in SQLite existiert

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.