Ето заявка към системния каталог, която трябва да извлече всичко необходимо (с бонус поле за първичен ключ, добавено безплатно).
ИЗБЕРЕТЕ 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
- по подразбиране:Командата, използвана за стойността по подразбиране