Saya mencoba mempelajari administrasi PostgreSQL dan sudah mulai belajar bagaimana menggunakan psql
alat baris perintah.
Ketika saya masuk dengan psql --username=postgres
, bagaimana cara mendaftar semua database dan tabel?
Saya telah mencoba \d
, d
dan dS+
tapi tidak terdaftar. Saya telah membuat dua database dan beberapa tabel dengan pgAdmin III, jadi saya tahu mereka harus terdaftar.
postgresql
tools
psql
command-line
Jonas
sumber
sumber
psql -l
psql --username=postgres -l
.Jawaban:
Harap perhatikan perintah berikut:
\list
atau\l
: daftar semua basis data\dt
: daftar semua tabel di database saat iniAnda tidak akan pernah melihat tabel di database lain, tabel ini tidak terlihat. Anda harus terhubung ke database yang benar untuk melihat tabelnya (dan objek lainnya).
Untuk berpindah basis data:
\connect database_name
atau\c database_name
Lihat manual tentang psql .
sumber
\c db_name
untuk terhubung ke database tertentu.\dt
tampaknya tidak mencantumkan semua tabel dalam database saat ini (tampaknya mengecualikan yang tidak ditemukansearch_path
pada setidaknya pada 9,2)\dt *.
akan mencantumkan semua tabel di semua skema, tanpa harus mengubah jalur pencarian Anda.psql -U username -l
tetapi tidak berfungsi dengan versi slash.Ini daftar basis data:
Ini daftar tabel dalam database saat ini
sumber
WHERE table_schema = 'public'
karena saya ingin menjatuhkan hanya tabel kustom.Dalam Postgresql, perintah terminal ini mencantumkan basis data yang tersedia
Atau perintah yang dinyatakan lebih sederhana:
Perintah-perintah itu mencetak ini di terminal:
Ini adalah basis data yang tersedia.
Dalam PSQL perintah ini mencantumkan tabel yang tersedia
Anda harus menentukan database sebelum Anda bisa daftar tabel di database itu.
Ini membawa Anda ke terminal psql:
Gunakan perintah
\d
artinya tampilkan semua tabel, tampilan, dan urutanIni mencetak:
Kemudian, untuk keluar dari terminal psql, ketik
\q
dan tekan enter. AtauCtrl-D
melakukan hal yang sama. Ini adalah tabel dalam database itu.sumber
\d[S+] list tables, views, and sequences
\l
juga merupakan singkatan\list
. Ada beberapa perintah slash, yang bisa Anda daftarkan dalam psql dengan menggunakan\?
.sumber
Untuk mendapatkan lebih banyak informasi tentang database dan daftar tabel, Anda dapat melakukan:
\l+
untuk membuat daftar basis datadan
\d+
untuk membuat daftar semua tabel dalam skema search_path saat ini di database saat ini.sumber
Dari pg_Admin Anda cukup menjalankan yang berikut ini di database Anda saat ini dan itu akan mendapatkan semua tabel untuk skema yang ditentukan:
Ini akan memberi Anda daftar semua tabel permanen (umumnya tabel yang Anda cari). Anda bisa mendapatkan hanya nama tabel jika Anda mengubah
*
wildcard menjadi hanyatable_name
. Publiktable_schema
adalah skema default untuk sebagian besar basis data kecuali admin Anda telah membuat skema baru.sumber
Ada kemungkinan bahwa Anda telah memasukkan tabel ke dalam skema yang tidak ada di jalur pencarian Anda, atau default, yaitu publik dan sehingga tabel tidak akan muncul menggunakan \ dt. Jika Anda menggunakan skema yang disebut, katakanlah, data, Anda dapat memperbaikinya dengan menjalankan,
alter database <databasename> set search_path=data, public;
Keluar dan masukkan kembali psql dan sekarang \ dt akan menunjukkan kepada Anda tabel dalam data skema juga.
sumber
set search_path=data, public;
juga bisa membantu :)