it-swarm.asia

Bagaimana cara mendaftar semua skema di PostgreSQL?

Saat menggunakan PostgreSQL v9.1, bagaimana cara membuat daftar semua skema menggunakan SQL?

Saya mengharapkan sesuatu seperti:

SELECT something FROM pg_blah;
267
Stéphane

Untuk mencantumkan semua skema, gunakan INFORMASI_SCHEMA (ANSI) standar

select schema_name
from information_schema.schemata;

Lebih detail di manual

kalau tidak:

select nspname
from pg_catalog.pg_namespace;

Lebih detail tentang pg_catalog di manual

280

Saat menggunakan baris perintah psql, Anda dapat mendaftar semua skema dengan perintah \dn.

274
eppesuig

Hubungkan ke perintah psql -> psql --u {userName} {DBName} maka Anda dapat mengetikkan perintah di bawah ini untuk memeriksa berapa banyak skema yang ada dalam DB

DBName=# \dn

Jika tidak, Anda dapat memeriksa sintaks dengan langkah-langkah di bawah ini dengan mudah-

  1. Setelah menghubungkan DB, tekan

    DBName=# help
    

Anda akan mendapatkan opsi di bawah ini:

Anda menggunakan psql, antarmuka baris perintah ke PostgreSQL.
Jenis:\hak cipta untuk ketentuan distribusi
\h untuk bantuan dengan perintah SQL
\? untuk bantuan dengan perintah psql
\g atau akhiri dengan tanda koma untuk menjalankan kueri
\q untuk keluar

Lalu tekan

DBName=# \?

Anda akan mendapatkan semua opsi dengan sangat mudah.

40
Bhabatosh Bera

Dimulai pada postgres 9.3, Salah satu trik yang dapat Anda gunakan dalam postgres untuk mendapatkan sql yang tepat dari perintah informasi (seperti\d,\du,\dp, dll) di psql adalah dengan menggunakan transaksi. Begini caranya. Buka satu sesi postgres, lalu ketikkan perintah Anda:

begin;
\dn+

Saat transaksi masih berjalan, buka sesi postgres lain, dan permintaan pg_stat_activity dan Anda bisa mendapatkan sql yang tepat.

postgres=# select query from pg_stat_activity ;
                                 query                                 
-----------------------------------------------------------------------
 SELECT n.nspname AS "Name",                                          +
   pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner",                 +
   pg_catalog.array_to_string(n.nspacl, E'\n') AS "Access privileges",+
   pg_catalog.obj_description(n.oid, 'pg_namespace') AS "Description" +
 FROM pg_catalog.pg_namespace n                                       +
 WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'      +
 ORDER BY 1;
12
Soni Harriz