Jest znacznie prostsze sposób w PostgreSQL, aby uzyskać typ kolumny.
SELECT pg_typeof(col)::text FROM tbl LIMIT 1
Oczywiście stół musi zawierać co najmniej jeden rząd. Otrzymujesz tylko typ podstawowy bez modyfikatorów typu (jeśli istnieją). Użyj poniższej alternatywy, jeśli tego potrzebujesz.
Możesz również użyć funkcji dla stałych. podręcznik pg_typeof()
.
Dla pustej (lub dowolnej) tabeli możesz użyć zapytania do katalogu systemowego pg_attribute
aby uzyskać pełną listę kolumn i ich odpowiedni typ w kolejności:
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;
Podręcznik format_type()
oraz typy identyfikatorów obiektów
jak regclass
.