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.