はるかに簡単があります PostgreSQLで列の型を取得する方法。
SELECT pg_typeof(col)::text FROM tbl LIMIT 1
もちろん、テーブルには少なくとも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
のように 。