2015-07-10 147 views
0

在pagila示例數據庫裏面的電影表有列名爲release_year與數據類型年,但是當我查詢此列數據類型使用information_schema我得到整數,因爲它的數據類型是什麼問題?我已經使用的查詢information_schema.columns返回不同的數據類型。

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

如何獲取實際的數據類型?

+0

你肯定不會有在不同的模式的多個結果?或者也許''電影「vs」電影「大小寫敏感性問題? –

+2

是的。它看起來像某人創建了一個名爲「年」的域,並且該information_schema包含基礎數據類型。 – sumit

+0

information_schema.columns上有一個名爲domain_name的列,其中包含「年」。你也應該發表你的評論作爲答案並接受它。 – 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