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

PRAGMA table_list in SQLite

In SQLite, la table_list pragma restituisce informazioni sulle tabelle e le viste nello schema.

È stato introdotto per la prima volta in SQLite versione 3.37.0 (rilasciato il 27-11-2021).

Sintassi

La table_list pragma può essere utilizzato in uno dei seguenti modi:

PRAGMA table_list;
PRAGMA schema.table_list;
PRAGMA table_list(table-name);

Dove schema è il nome di uno schema specifico per il quale desideri elencare le tabelle e le viste.

E dove table-name è il nome di tabelle o viste specifiche che desideri elencare.

Esempio

PRAGMA table_list;

Risultato:

schema  name                type   ncol  wr  strict
------  ------------------  -----  ----  --  ------
main    sqlite_schema       table  5     0   0     
temp    sqlite_temp_schema  table  5     0   0     
Store   Orders              table  2     0   1     
Store   Customers           table  4     1   1     
Store   Products            table  3     0   0     
Store   Types               table  3     0   0     
Store   Dogs                table  3     0   0     
Store   Cats                table  3     0   0     
Store   vProducts           view   3     0   0     
Store   sqlite_schema       table  5     0   0     
Pets    Events              table  4     0   0     
Pets    Pets                table  3     0   0     
Pets    Types               table  2     0   0     
Pets    Cats                table  2     0   0     
Pets    Dogs                table  2     0   0     
Pets    sqlite_schema       table  5     0   0     

Possiamo vedere che i nomi delle tabelle e delle viste sono elencati in name colonna. Possiamo anche vedere se si tratta di una tabella o di una vista guardando il type colonna. E, naturalmente, il nome dello schema è elencato nello schema colonna.

Il ncol colonna contiene il numero di colonne nella tabella, incluse le colonne generate e nascoste.

Il wr colonna indica se la tabella è stata definita o meno con il WITHOUT ROWID opzione. Nel nostro esempio, possiamo vedere che il Customers la tabella è stata definita con WITHOUT ROWID .

Il strict colonna indica se la tabella è stata definita o meno con STRICT opzione. Questa opzione è stata introdotta in SQLite versione 3.37.0 (la stessa versione di table_list pragma è stato introdotto). Nel nostro esempio, possiamo vedere che i Customers e Orders le tabelle sono state definite con STRICT opzione.

Ottieni tutte le tabelle in un database specifico

Possiamo includere il nome dello schema per restituire solo le tabelle e le viste in un determinato database:

PRAGMA Store.table_list;

Risultato:

schema  name           type   ncol  wr  strict
------  -------------  -----  ----  --  ------
Store   Orders         table  2     0   1     
Store   Customers      table  4     1   1     
Store   Products       table  3     0   0     
Store   Types          table  3     0   0     
Store   Dogs           table  3     0   0     
Store   Cats           table  3     0   0     
Store   vProducts      view   3     0   0     
Store   sqlite_schema  table  5     0   0     

Ottieni tabelle per nome

Possiamo fornire il nome della tabella/vista per restituire tutte le tabelle/viste con quel nome in tutti i database:

PRAGMA table_list('Dogs');

Risultato:

schema  name  type   ncol  wr  strict
------  ----  -----  ----  --  ------
Store   Dogs  table  3     0   0     
Pets    Dogs  table  2     0   0     

In questo caso possiamo vedere che sia il Store e Pets gli schemi hanno una tabella chiamata Dogs .