Bagaimana Anda melakukan yang setara dengan Oracle DESCRIBE TABLE
di PostgreSQL (menggunakan perintah psql)?
postgresql
psql
table-structure
Tuan Muskrat
sumber
sumber
+
benar-benar kopling, karena PostgresSQL 9 hanya memberikan deskripsi mendalam untuk tampilan saat Anda melakukannya\d+ table_name
, daripada yang sederhana\d table_name
psql -E
berguna untuk mendapatkan sql yang mengimplementasikan\d+
dan serupa (untuk digunakan di luar prompt psql)Selain cara PostgreSQL (\ d 'something' atau \ dt 'table' atau \ ds 'sequence' dan seterusnya)
Cara standar SQL, seperti yang ditunjukkan di sini :
Ini didukung oleh banyak mesin db.
sumber
\d+
tidak. Ini adalah jawaban terbaik IMOJika Anda ingin mendapatkannya dari kueri alih-alih psql, Anda dapat meminta skema katalog. Inilah permintaan kompleks yang melakukan itu:
Ini cukup rumit tetapi tidak menunjukkan kekuatan dan fleksibilitas dari katalog sistem PostgreSQL dan akan membuat Anda menuju penguasaan pg_catalog ;-). Pastikan untuk mengubah% s di kueri. Yang pertama adalah Skema dan yang kedua adalah nama tabel.
sumber
format_type()
akan mencakup pengubah yang melekat pada tipe, misalnyanumeric(6,2)
; sedangkaninformation_schema.columns
hanya akan melaporkan tipe dasarnumeric
.Anda dapat melakukannya dengan perintah slash psql:
Ini juga berfungsi untuk objek lain:
Sumber: faqs.org
sumber
Setara dengan psql
DESCRIBE TABLE
adalah\d table
.Lihat bagian psql manual PostgreSQL untuk lebih jelasnya.
sumber
\c databasename
lebih daripadause databasename
(bagi mereka yang datang dari MySQL seperti saya :-). Tanpa\c databasename
dulu,\d tablename
menghasilkanNo relations found.
pesan dan tidak lebih.Ini harus menjadi solusinya:
sumber
Anda dapat melakukan
\d *search pattern *
dengan tanda bintang untuk menemukan tabel yang cocok dengan pola pencarian yang Anda minati.sumber
\d *"<SubString>"*
. Artinya, tanda kutip ganda harus berada di dalam tanda bintang. Padahal, jika Anda hanya ingin daftar tabel maka Anda ingin menggunakan\dt
Selain baris perintah
\d+ <table_name>
yang sudah Anda temukan, Anda juga bisa menggunakan skema informasi untuk mencari data kolom, menggunakan info_schema.columnssumber
FROM info_schema.columns
tidak berfungsi untuk saya, saya harus menggunakanfrom information_schema.columns
, tidak yakin apakah itu salah ketik dalam jawaban Anda atau beberapa masalah implementasi di akhir saya.Gunakan pernyataan SQL berikut
Jika Anda mengganti tbl_name dan col_name, ini akan menampilkan tipe data dari kolom tertentu yang Anda cari.
sumber
Anda bisa menggunakan ini:
sumber
Variasi kueri ini (seperti yang dijelaskan dalam jawaban lain) bekerja untuk saya.
Dijelaskan di sini secara rinci: http://www.postgresqltutorial.com/postgresql-describe-table/
sumber
Di MySQL , DESCRIBE table_name
Di PostgreSQL , \ d table_name
Atau, Anda dapat menggunakan perintah panjang ini:
sumber
Untuk memperbaiki kueri SQL jawaban lain (yang hebat!), Berikut adalah kueri yang direvisi. Ini juga termasuk nama kendala, informasi warisan, dan tipe data yang dipecah menjadi bagian-bagian penyusunnya (tipe, panjang, presisi, skala). Itu juga menyaring kolom yang telah dijatuhkan (yang masih ada di database).
sumber
Anda juga dapat memeriksa menggunakan kueri di bawah ini
Expmple: Tabel saya memiliki 2 nama kolom dan pwd. Memberikan tangkapan layar di bawah ini.
* Menggunakan PG admin3
sumber
Cara terbaik untuk menggambarkan tabel seperti kolom, jenis, pengubah kolom, dll.
sumber
sumber
sumber
1) TABEL DESKRIPSI PostgreSQL menggunakan psql
Dalam alat baris perintah psql, \ d table_name atau \ d + table_name untuk menemukan informasi pada kolom tabel
2) TABEL KETERANGAN PostgreSQL menggunakan information_schema
SELECT pernyataan untuk query nama_kolom, tipe data, panjang karakter maksimum dari tabel kolom dalam database information_schema;
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH dari INFORMATION_SCHEMA.COLUMNS di mana table_name = 'tablename';
Untuk informasi lebih lanjut https://www.postgresqltutorial.com/postgresql-describe-table/
sumber
/ dt adalah commad yang mencantumkan semua tabel yang ada dalam database. menggunakan
perintah / d dan / d + kita bisa mendapatkan rincian tabel. Sysntax akan seperti
* / d table_name (atau) \ d + table_name
sumber
Saya mengerjakan skrip berikut untuk mendapatkan skema tabel.
sumber
||
tampaknya menjadi sesuatu seperti operator gabungan (menyatukan string)