PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да получите заявка за атрибути на колона от името на таблицата с помощта на PostgreSQL?

Ето заявка към системния каталог, която трябва да извлече всичко необходимо (с бонус поле за първичен ключ, добавено безплатно).

ИЗБЕРЕТЕ DISTINCT a.attnum като num, a.attname като име, format_type(a.atttypid, a.atttypmod) като typ, a.attnotnull като notnull, com.description като коментар, обединяване (i.indisprimary ,false) като първичен_ключ, def.adsrc като defaultFROM pg_attribute a JOIN pg_class pgc ON pgc.oid =a.attrelidLEFT 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 И a.attnum =com.objsubid) LEFT JOIN pg_attrdef def ON (a.attrelid =def.adrelid И a.attnum =def.adnum) КЪДЕ a.attnum> c 0 .oid =a.attrelidAND pg_table_is_visible(pgc.oid) И НЕ a.attisdroppedAND pgc.relname ='TABLE_NAME' -- Името на вашата таблица тук ORDER BY a.attnum; 

Което би върнало резултати като:

<предварителен код> брой | име | тип | nonnull | коментар | първичен_ключ -----+------------+---------------------------- +--------+---------------------+------------ 1 | ID | цяло число | t | основно ключово нещо | t 2 | ref | текст | е | | f 3 | създаден | времева марка без часова зона | t | | f 4 | модифициран | времева марка без часова зона | t | | f 5 | име | текст | t | | f
  • num:Номерът на колоната
  • име:Име на колоната
  • тип:типът данни
  • notnull:колоната дефинирана ли е като NOT NULL
  • коментар:Всеки КОМЕНТАР дефинирани за колоната
  • primary_key:колоната дефинирана ли е като PRIMARY KEY
  • по подразбиране:Командата, използвана за стойността по подразбиране


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Еволюция на отказоустойчивостта в PostgreSQL:Синхронно записване

  2. Преглед на инструментите за планиране на работа за PostgreSQL

  3. Postgresql рекурсивно самостоятелно присъединяване

  4. Начален масив във функция за агрегиране на многоизмерен масив

  5. Ако PostgreSQL count(*) винаги е бавен, как да се пагинират сложни заявки?