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
.