Имамного по-просто начин в PostgreSQL да получите типа на колона.
SELECT pg_typeof(col)::text FROM tbl LIMIT 1
Масата трябва да съдържа поне един ред, разбира се. И получавате само основния тип без модификатори на типа (ако има такива). Използвайте алтернативата по-долу, ако имате нужда и от това.
Можете да използвате функцията и за константи. Ръководството на pg_typeof()
.
За празна (или която и да е) таблица можете да използвате заявка към системния каталог pg_attribute
за да получите пълния списък с колони и съответния им тип в ред:
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;
Ръководството за format_type()
и на типове идентификатори на обект
като regclass
.