SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como verificar se existe uma tabela no SQLite


No SQLite, podemos consultar o sqlite_schema table para descobrir se uma determinada tabela existe.

Antes do SQLite versão 3.33.0, essa tabela era chamada de sqlite_master (ainda pode ser referido como tal em versões subsequentes para compatibilidade com versões anteriores).

Exemplo


Segue um exemplo para demonstrar:
SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Resultado:
1

Neste caso, a tabela existe e 1 é devolvido.

Aqui está um exemplo do que acontece quando a tabela não existe:
SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Inventory'
    );

Resultado:
0

O sqlite_master Tabela


A mesma consulta pode ser executada usando sqlite_master em vez de sqlite_schema :
SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_master 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Resultado:
1

Você também pode usar sqlite_temp_schema ou sqlite_temp_master , mas isso só funciona para o TEMP banco de dados associado a cada conexão de banco de dados.