sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan får man kolonneattributter forespørgsel fra tabelnavn ved hjælp af PostgreSQL?

Her er en forespørgsel mod systemkataloget, der skal hente alt, hvad du har brug for (med et bonus primærnøglefelt 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;
 

Hvilket ville returnere resultater som:

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:Kolonnenummeret
  • navn:Kolonnenavnet
  • typ:datatypen
  • notnull:Er kolonnen defineret som NOT NULL
  • kommentar:Enhver COMMENT defineret for kolonnen
  • primær_nøgle:Er kolonnen defineret som PRIMARY KEY
  • standard:Kommandoen, der bruges til standardværdien


  1. PHP Fatal fejl:Klasse 'PDO' blev ikke fundet

  2. Eksport- og importmetoder for SQL Server-databasetabeller

  3. Tips og tricks ved hjælp af revisionslogning til MariaDB

  4. 3 metoder til at forbinde MDF-fil til SQL Server