it-swarm-eu.dev

Jak mohu uvést všechny databáze a tabulky pomocí psql?

Snažím se naučit správu PostgreSQL a začal jsem se učit, jak používat nástroj příkazového řádku psql.

Když se přihlásím pomocí psql --username=postgres, jak mohu uvést všechny databáze a tabulky?

Zkusil jsem \d, d a dS+ ale nic není uvedeno. Vytvořil jsem dvě databáze a několik tabulek s programem pgAdmin III, takže vím, že by měly být uvedeny.

1243
Jonas

Vezměte prosím na vědomí následující příkazy:

  • \list nebo \l: seznam všech databází
  • \dt: seznam všech tabulek v aktuální databázi pomocí search_path
  • \dt *.: seznam všech tabulek v aktuální databázi bez ohledu na vaše search_path

Nikdy neuvidíte tabulky v jiných databázích, tyto tabulky nejsou viditelné. Chcete-li zobrazit její tabulky (a další objekty), musíte se připojit ke správné databázi.

Přepínání databází:

\connect database_name nebo \c database_name

Viz příručka o psql .

1639
Frank Heikens

Seznam databází:

SELECT datname FROM pg_database
WHERE datistemplate = false;

Tím jsou uvedeny tabulky v aktuální databázi

SELECT table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name;
381
RolandoMySQLDBA

V Postgresql tyto příkazy terminálu obsahují seznam dostupných databází

[email protected]$ /bin/psql -h localhost --username=pgadmin --list

Nebo příkaz řekl jednoduše:

psql -U pgadmin -l

Tyto příkazy to vytisknou na terminálu:

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 kurz_prod | pgadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 pgadmin   | pgadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(5 rows)

Toto jsou dostupné databáze.

V PSQL tyto příkazy obsahují seznam dostupných tabulek

Předtím, než budete moci v seznamu uvést tabulky v této databázi, musíte určit databázi.

[email protected]$ psql -U pgadmin -d kurz_prod

Tím se dostanete na terminál psql:

kurz_prod=#

Použijte příkaz \d znamená zobrazit všechny tabulky, pohledy a sekvence

kurz_prod=# \d

Vytiskne se:

           List of relations
Schema |  Name   |   Type   |  Owner
--------+---------+----------+---------
public | mytable | table    | pgadmin
public | testing | sequence | pgadmin
(2 rows)

Poté ukončete terminál psql zadáním \q a stiskněte klávesu enter. Nebo Ctrl-D dělá totéž. Toto jsou tabulky v této databázi.

112
Eric Leschinski

\l je také zkratka pro \list. Existuje poměrně málo příkazů lomítka, které můžete zobrazit v psql pomocí \?.

74
Derek Arnold

Chcete-li získat více informací o databázi a seznamu tabulek, můžete:

\l+ pro výpis databází

                                                                    List of databases
    Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   |  Size   | Tablespace |                Description
------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------
 pgbench    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 29 MB   | pg_default |
 postgres   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 6073 kB | pg_default | default administrative connection database
 slonmaster | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 1401 MB | movespace  |
 slonslave  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 32 MB   | pg_default |
 template0  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5785 kB | pg_default | unmodifiable empty database
            |          |          |             |             | postgres=CTc/postgres |         |            |
 template1  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5985 kB | pg_default | default template for new databases
            |          |          |             |             | postgres=CTc/postgres |         |            |
 test       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 13 MB   | pg_default |
(7 rows)

a

\d+ pro zobrazení všech tabulek v aktuálním schématu search_path v aktuální databázi.

test=# \dn+ --list schemas
                          List of schemas
  Name  |  Owner   |  Access privileges   |      Description       
--------+----------+----------------------+------------------------
 public | postgres | postgres=UC/postgres+| standard public schema
        |          | =UC/postgres         | 
schema1 | postgres | postgres=UC/postgres+| 
        |          | =UC/postgres         | 
(2 row)

test=# set search_path to schema1, public;
SET
test=# \d+
                                  List of relations
     Schema  |      Name       | Type  |    Owner     |    Size    | Description
    ---------+-----------------+-------+--------------+------------+-------------
     public  | all_units       | table | postgres     | 0 bytes    |
     public  | asset           | table | postgres     | 16 kB      |
     public  | asset_attribute | table | postgres     | 8192 bytes |
     public  | food            | table | postgres     | 48 kB      |
     public  | name_log        | table | postgres     | 8192 bytes |
     public  | outable         | table | ordinaryuser | 0 bytes    |
     public  | outable2        | table | ordinaryuser | 0 bytes    |
     public  | test            | table | postgres     | 16 kB      |
     public  | usr             | table | postgres     | 5008 kB    |
     schema1 | t1              | table | postgres     | 0 bytes    |
    (10 rows)
36
Soni Harriz

Z pg_Admin můžete jednoduše spustit následující v aktuální databázi a získá všechny tabulky pro zadané schéma:

SELECT * 
FROM information_schema.tables 
WHERE table_type = 'BASE TABLE' 
    AND table_schema = 'public' 
ORDER BY table_type, table_name

Tím získáte seznam všech trvalých tabulek (obvykle tabulky, které hledáte). Pokud změníte * zástupný znak pouze k table_name. Veřejnost table_schema je výchozí schéma pro většinu databází, pokud administrátor nenastavil nové schéma.

33
Larry W

Je možné, že jste tabulky vložili do schématu, které není ve vaší vyhledávací cestě, nebo do výchozí, tj. Veřejné, takže se tabulky nebudou zobrazovat pomocí\dt. Pokud používáte schéma nazvané řekněme data, můžete to opravit spuštěním,

alter database <databasename> set search_path=data, public;

Ukončete a znovu zadejte psql a nyní\dt vám také zobrazí tabulky v datech schématu.

19
John Powell