Estoy tratando de aprender la administración de PostgreSQL y he comenzado a aprender a usar la psql
herramienta de línea de comandos.
Cuando inicio sesión psql --username=postgres
, ¿cómo enumero todas las bases de datos y tablas?
He tratado \d
, d
y dS+
pero nada aparece en la lista. He creado dos bases de datos y algunas tablas con pgAdmin III, por lo que sé que deberían aparecer en la lista.
postgresql
tools
psql
command-line
Jonas
fuente
fuente
psql -l
psql --username=postgres -l
.Respuestas:
Tenga en cuenta los siguientes comandos:
\list
o\l
: enumerar todas las bases de datos\dt
: enumera todas las tablas en la base de datos actualNunca verá tablas en otras bases de datos, estas tablas no son visibles. Debe conectarse a la base de datos correcta para ver sus tablas (y otros objetos).
Para cambiar las bases de datos:
\connect database_name
o\c database_name
Consulte el manual sobre psql .
fuente
\c db_name
para conectarse a una determinada base de datos.\dt
no parece enumerar todas las tablas en la base de datos actual (parece excluir aquellas que no se encuentransearch_path
al menos en 9.2)\dt *.
enumerará todas las tablas en todos los esquemas, sin tener que modificar su ruta de búsqueda.psql -U username -l
pero no funciona con la versión de barra diagonal.Esto enumera las bases de datos:
Esto enumera las tablas en la base de datos actual
fuente
WHERE table_schema = 'public'
porque quiero soltar solo tablas personalizadas.En Postgresql, estos comandos de terminal enumeran las bases de datos disponibles
O el comando declaró más simplemente:
Esos comandos imprimen esto en la terminal:
Estas son las bases de datos disponibles.
En PSQL, estos comandos enumeran las tablas disponibles.
Debe especificar una base de datos antes de poder enumerar las tablas en esa base de datos.
Esto te lleva a un terminal psql:
Utilice el comando que
\d
significa mostrar todas las tablas, vistas y secuenciasEsto imprime:
Luego, para salir del terminal psql, escriba
\q
y presione Intro. OCtrl-D
hace lo mismo. Estas son las tablas en esa base de datos.fuente
\d[S+] list tables, views, and sequences
\l
También es la abreviatura de\list
. Hay bastantes comandos de barra, que puede enumerar en psql utilizando\?
.fuente
Para obtener más información sobre la base de datos y la lista de tablas, puede hacer lo siguiente:
\l+
para enumerar bases de datosy
\d+
para enumerar todas las tablas en el esquema actual de search_path en la base de datos actualfuente
Desde pg_Admin simplemente puede ejecutar lo siguiente en su base de datos actual y obtendrá todas las tablas para el esquema especificado:
Esto le dará una lista de todas las tablas permanentes (generalmente las tablas que está buscando). Puede obtener solo los nombres de las tablas si cambia el
*
comodín a solo eltable_name
. El públicotable_schema
es el esquema predeterminado para la mayoría de las bases de datos a menos que su administrador haya configurado un nuevo esquema.fuente
Es posible que haya insertado las tablas en un esquema que no está en su ruta de búsqueda, o la predeterminada, es decir, pública, por lo que las tablas no aparecerán usando \ dt. Si usa un esquema llamado, digamos, datos, puede solucionarlo ejecutando,
alter database <databasename> set search_path=data, public;
Salga y vuelva a ingresar psql y ahora \ dt también le mostrará las tablas en los datos del esquema.
fuente
set search_path=data, public;
haría el truco también :)