Respuestas:
En todos los esquemas:
=> \dt *.*
En un esquema particular:
=> \dt public.*
Es posible utilizar expresiones regulares con algunas restricciones.
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Los usuarios avanzados pueden usar anotaciones de expresiones regulares como clases de caracteres, por ejemplo [0-9] para que coincida con cualquier dígito. Todos los caracteres especiales de expresión regular funcionan como se especifica en la Sección 9.7.3, excepto
.
que se toma como un separador como se mencionó anteriormente,*
que se traduce a la notación de expresión regular.*
,?
que se traduce.
y$
que coincide literalmente. Puede emular estos caracteres de patrón según sea necesario escribiendo?
para.
,(R+|)
paraR*
o(R|)
paraR?
.$
no es necesario como un carácter de expresión regular ya que el patrón debe coincidir con el nombre completo, a diferencia de la interpretación habitual de las expresiones regulares (en otras palabras,$
se agrega automáticamente a su patrón). Escriba*
al principio y / o al final si no desea que se ancle el patrón. Tenga en cuenta que entre comillas dobles, todos los caracteres especiales de expresión regular pierden sus significados especiales y coinciden literalmente. Además, los caracteres especiales de la expresión regular coinciden literalmente en los patrones de nombre de operador (es decir, el argumento de\do
).
\dt public.user_info, public.user_scope
?
\dt public.a; \dt public.b;
solo en una línea.
search_path
, y que por defecto es "$user", public.*
. En consecuencia, set search_path=s; \dt
se enumerarán todas las tablas en el esquema s
.
Puede seleccionar las tablas de information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Alternativamente information_schema
, es posible usar pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
no enumerar elementos del public
esquema, pero el pg_tables
método funcionó bien. ¡Muchas gracias!
Para aquellos que se encuentren con esto en el futuro:
Si desea ver una lista de relaciones para varios esquemas:
$psql mydatabase
mydatabase=# SET search_path TO public, usa; #schema examples
SET
mydatabase=# \dt
List of relations
Schema | Name | Type | Owner
--------+-----------------+-------+----------
public | counties | table | postgres
public | spatial_ref_sys | table | postgres
public | states | table | postgres
public | us_cities | table | postgres
usa | census2010 | table | postgres
\dt
es equívoco\dt public.*
, ¿estoy en lo cierto?