SQLite
 sql >> Database >  >> RDS >> SQLite

Come verificare se una tabella esiste in SQLite

In SQLite, possiamo interrogare sqlite_schema tabella per scoprire se una determinata tabella esiste.

Prima di SQLite versione 3.33.0, questa tabella veniva chiamata sqlite_master (può ancora essere indicato come tale nelle versioni successive per la compatibilità con le versioni precedenti).

Esempio

Ecco un esempio da dimostrare:

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Risultato:

1

In questo caso, la tabella esiste e 1 viene restituito.

Ecco un esempio di cosa succede quando la tabella non esiste:

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Inventory'
    );

Risultato:

0

Il sqlite_master Tabella

La stessa query può essere eseguita utilizzando sqlite_master invece di sqlite_schema :

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_master 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Risultato:

1

Puoi anche usare sqlite_temp_schema o sqlite_temp_master , ma funzionano solo per TEMP database associato a ciascuna connessione al database.