sql >> Database >  >> RDS >> PostgreSQL

Kolomnamen en gegevenstypen voor gerealiseerde weergaven in PostgreSQL?

Ik denk dat je heel dichtbij bent. De laatste stap zou zijn om mee te doen met pg_type :

join pg_catalog.pg_type as tp on tp.oid = attr.atttypid

Het veld tp.typname zou het datatype hebben.

De volgende query haalt kolomgegevenstypes op met behulp van naamruimte (bijvoorbeeld schema) en relatienaam (bijvoorbeeld gematerialiseerde weergave):

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

U moet 'your_schema' . wijzigen en 'your_materialized_view' .




  1. Migreren van MySql naar SQL-server 2008

  2. Eerder Query-logboek bekijken - MySQL

  3. Verpakt SQL Server Select... Insert Queries in een impliciete transactie?

  4. Oracle-subquery ziet de variabele niet vanaf het buitenste blok 2 niveaus hoger