Tôi nghĩ bạn đang ở rất gần. Bước cuối cùng là tham gia với pg_type
:
join pg_catalog.pg_type as tp on tp.oid = attr.atttypid
Trường tp.typname
sẽ có kiểu dữ liệu.
Truy vấn sau nhận được các kiểu dữ liệu cột bằng cách sử dụng không gian tên (ví dụ:lược đồ) và tên quan hệ (ví dụ:chế độ xem vật chất hóa):
select
attr.attnum,
ns.nspname as schema_name,
cls.relname as table_name,
attr.attname as column_name,
tp.typname as datatype
from pg_catalog.pg_attribute as attr
join pg_catalog.pg_class as cls on cls.oid = attr.attrelid
join pg_catalog.pg_namespace as ns on ns.oid = cls.relnamespace
join pg_catalog.pg_type as tp on tp.oid = attr.atttypid
where
ns.nspname = 'your_schema'
and cls.relname = 'your_materialized_view'
and attr.attnum >= 1
order by
attr.attnum
Bạn phải thay đổi 'your_schema'
và 'your_materialized_view'
.