2015-07-10 2 views
0

в базе данных образца pagila внутри таблицы фильма есть столбец с именем release_year с годом данных, но когда я запрашиваю этот тип данных столбца с помощью information_schema, я получаю Integer, поскольку это тип данных, что происходит неправильно? запрос, который я использовалinformation_schema.columns возвращает другой тип данных.

select c.column_name,c.data_type 
from information_schema.columns c 
where c.table_name = 'film' 
; 

Как получить фактический тип данных?

+0

Вы уверены, что там не несколько результатов в разных схемах? Или, может быть, '' Фильм ''против' 'фильма' 'проблемы чувствительности к регистру? –

+2

Да. Похоже, что кто-то создал домен с именем 'year', и что information_schema содержит базовый тип данных. – sumit

+0

Существует столбец под названием domain_name на information_schema.columns, который будет содержать «год». Также вы должны отправить свой комментарий в качестве ответа и принять его. – Gary

ответ

1

я получил ответ, используя этот запрос:

SELECT 
    a.attname as "Column", 
    pg_catalog.format_type(a.atttypid, a.atttypmod) as "Datatype" 
FROM 
    pg_catalog.pg_attribute a 
WHERE 
    a.attnum > 0 
    AND NOT a.attisdropped 
    AND a.attrelid = (
     SELECT c.oid 
     FROM pg_catalog.pg_class c 
      LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace 
     WHERE c.relname ~ '^(table_name)$' 
      AND pg_catalog.pg_table_is_visible(c.oid) 
    ) 
; 

enter code here 
Смежные вопросы