Existuje mnohem jednodušší způsobem v PostgreSQL získat typ sloupce.
SELECT pg_typeof(col)::text FROM tbl LIMIT 1
Tabulka musí samozřejmě obsahovat alespoň jeden řádek. A získáte pouze základní typ bez modifikátorů typu (pokud existují). Pokud to také potřebujete, použijte níže uvedenou alternativu.
Funkci můžete použít i pro konstanty. příručka na pg_typeof()
.
Pro prázdnou (nebo jakoukoli) tabulku můžete použít dotaz v systémovém katalogu pg_attribute
abyste získali úplný seznam sloupců a jejich příslušný typ v pořadí:
SELECT attnum, attname AS column, format_type(atttypid, atttypmod) AS type
FROM pg_attribute
WHERE attrelid = 'myschema.mytbl'::regclass -- optionally schema-qualified
AND NOT attisdropped
AND attnum > 0
ORDER BY attnum;
Manuál na format_type()
a na typy identifikátorů objektů
jako regclass
.