sql >> Base de Datos >  >> RDS >> SQLite

PRAGMA table_list en SQLite

En SQLite, la table_list pragma devuelve información sobre las tablas y vistas en el esquema.

Se introdujo por primera vez en SQLite versión 3.37.0 (lanzado el 2021-11-27).

Sintaxis

La table_list pragma se puede utilizar de cualquiera de las siguientes formas:

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

Donde schema es el nombre de un esquema específico para el que le gustaría enumerar las tablas y vistas.

Y donde table-name es el nombre de tablas o vistas específicas que le gustaría enumerar.

Ejemplo

PRAGMA table_list;

Resultado:

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     

Podemos ver que los nombres de la tabla y la vista se enumeran en el name columna. También podemos ver si se trata de una tabla o una vista mirando el type columna. Y, por supuesto, el nombre del esquema aparece en el schema columna.

El ncol columna contiene el número de columnas en la tabla, incluidas las columnas generadas y las columnas ocultas.

El wr columna indica si la tabla se ha definido o no con WITHOUT ROWID opción. En nuestro ejemplo, podemos ver que los Customers la tabla se ha definido con WITHOUT ROWID .

El strict columna indica si la tabla se ha definido o no con STRICT opción. Esta opción se introdujo en SQLite versión 3.37.0 (la misma versión que la table_list se introdujo el pragma). En nuestro ejemplo, podemos ver que los Customers y Orders las tablas se han definido con STRICT opción.

Obtener todas las tablas en una base de datos específica

Podemos incluir el nombre del esquema para devolver solo las tablas y vistas en una base de datos dada:

PRAGMA Store.table_list;

Resultado:

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     

Obtener tablas por nombre

Podemos proporcionar el nombre de la tabla/vista para devolver todas las tablas/vistas con ese nombre en todas las bases de datos:

PRAGMA table_list('Dogs');

Resultado:

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

En este caso podemos ver que tanto la Store y Pets los esquemas tienen una tabla llamada Dogs .