sql >> Database >  >> RDS >> PostgreSQL

Hoe krijg ik een kolomattributenquery uit de tabelnaam met behulp van PostgreSQL?

Hier is een zoekopdracht tegen de systeemcatalogus die alles zou moeten ophalen wat je nodig hebt (met een gratis veld voor de primaire sleutel).

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;

Wat resultaten zou opleveren als:

 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:Het kolomnummer
  • naam:de kolomnaam
  • typ:het gegevenstype
  • notnull:Is de kolom gedefinieerd als NOT NULL
  • opmerking:Elke COMMENT gedefinieerd voor de kolom
  • primary_key:Is de kolom gedefinieerd als PRIMARY KEY
  • default:de opdracht die wordt gebruikt voor de standaardwaarde


  1. Hoe geef ik een Java-lijst met objecten door aan de Oracle Stored Procedure met MyBatis?

  2. Controleer de ruimte die wordt gebruikt door een tabel in SQL Server

  3. Typen SQL Server-cursor - Alleen doorsturen statische cursor | SQL Server-zelfstudie / TSQL-zelfstudie

  4. Reguliere expressies binnen SQL Server