PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mendapatkan kueri atribut kolom dari nama tabel menggunakan PostgreSQL?

Berikut adalah kueri terhadap katalog sistem yang seharusnya mengambil semua yang Anda butuhkan (dengan kolom kunci utama bonus yang diberikan secara gratis).

SELECT DISTINCT
    a.attnum as num,
    a.attname as name,
    format_type(a.atttypid, a.atttypmod) as typ,
    a.attnotnull as notnull, 
    com.description as comment,
    coalesce(i.indisprimary,false) as primary_key,
    def.adsrc as default
FROM pg_attribute a 
JOIN pg_class pgc ON pgc.oid = a.attrelid
LEFT JOIN pg_index i ON 
    (pgc.oid = i.indrelid AND i.indkey[0] = a.attnum)
LEFT JOIN pg_description com on 
    (pgc.oid = com.objoid AND a.attnum = com.objsubid)
LEFT JOIN pg_attrdef def ON 
    (a.attrelid = def.adrelid AND a.attnum = def.adnum)
WHERE a.attnum > 0 AND pgc.oid = a.attrelid
AND pg_table_is_visible(pgc.oid)
AND NOT a.attisdropped
AND pgc.relname = 'TABLE_NAME'  -- Your table name here
ORDER BY a.attnum;

Yang akan mengembalikan hasil seperti:

 num |    name     |             typ             | notnull |       comment       | primary_key 
-----+-------------+-----------------------------+---------+---------------------+-------------
   1 | id          | integer                     | t       | a primary key thing | t
   2 | ref         | text                        | f       |                     | f
   3 | created     | timestamp without time zone | t       |                     | f
   4 | modified    | timestamp without time zone | t       |                     | f
   5 | name        | text                        | t       |                     | f
  • num:Nomor kolom
  • nama:Nama kolom
  • ketik:tipe data
  • notnull:Apakah kolom didefinisikan sebagai NOT NULL
  • komentar:Setiap COMMENT ditentukan untuk kolom
  • primary_key:Apakah kolom didefinisikan sebagai PRIMARY KEY
  • default:Perintah yang digunakan untuk nilai default


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatif pghoard - Manajemen Pencadangan PostgreSQL dengan ClusterControl

  2. Membandingkan Load Balancer untuk PostgreSQL

  3. Tidak dapat terhubung ke server PostgreSQL:tidak dapat terhubung ke server:Izin ditolak

  4. dapatkan catatan tiga bulan terakhir dari tabel

  5. Postgresql json menyukai kueri