Réponses:
Dans tous les schémas:
=> \dt *.*
Dans un schéma particulier:
=> \dt public.*
Il est possible d'utiliser des expressions régulières avec certaines restrictions
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Les utilisateurs avancés peuvent utiliser des notations d'expressions régulières telles que des classes de caractères, par exemple [0-9] pour faire correspondre n'importe quel chiffre. Tous les caractères spéciaux d'expression régulière fonctionnent comme spécifié dans la section 9.7.3, à l'exception de celui
.
qui est pris comme séparateur comme mentionné ci-dessus,*
qui est traduit en notation d'expression régulière.*
,?
qui est traduit en.
, et$
qui correspond littéralement. Vous pouvez émuler ces caractères de modèle au besoin en écrivant?
pour.
,(R+|)
pourR*
ou(R|)
pour est automatiquement ajouté à votre modèle). ÉcrireR?
.$
n'est pas nécessaire en tant que caractère d'expression régulière car le modèle doit correspondre au nom entier, contrairement à l'interprétation habituelle des expressions régulières (en d'autres termes,$
*
au début et / ou à la fin si vous ne souhaitez pas que le motif soit ancré. Notez que dans les guillemets doubles, tous les caractères spéciaux d'expression régulière perdent leur signification spéciale et sont mis en correspondance littéralement. En outre, les caractères spéciaux d'expression régulière sont mis en correspondance littéralement dans les modèles de nom d'opérateur (c'est-à-dire l'argument de\do
).
\dt public.user_info, public.user_scope
?
\dt public.a; \dt public.b;
sur une seule ligne.
search_path
, et qui est par défaut "$user", public.*
. Par conséquent, set search_path=s; \dt
va répertorier toutes les tables du schéma s
.
Vous pouvez sélectionner les tableaux à partir de information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Alternativement, information_schema
il est possible d'utiliser pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
non-liste des éléments du public
schéma, mais la pg_tables
méthode a bien fonctionné. Merci beaucoup!
Pour ceux qui rencontreront cela à l'avenir:
Si vous souhaitez voir une liste de relations pour plusieurs schémas:
$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
Est tout simplement équivalent à\dt public.*
, ai-je raison?