Cuando hago un \dten psql solo obtengo una lista de tablas en el esquema actual ( publicpor defecto).
¿Cómo puedo obtener una lista de todas las tablas en todos los esquemas o un esquema particular?
fuente
Cuando hago un \dten psql solo obtengo una lista de tablas en el esquema actual ( publicpor defecto).
¿Cómo puedo obtener una lista de todas las tablas en todos los esquemas o un esquema particular?
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).
\dtes equívoco\dt public.*, ¿estoy en lo cierto?\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; \dtse enumerarán todas las tablas en el esquemas.Puede seleccionar las tablas de
information_schemafuente
Alternativamente
information_schema, es posible usarpg_tables:fuente
SELECT tablename FROM pg_tables WHERE schemaname = 'public';information_schemano enumerar elementos delpublicesquema, pero elpg_tablesmé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:
fuente