2013-12-10 61 views
3

AS SELECT我想創建具有以下查詢表:Postgres的CREATE TABLE未知列類型

create table something as 
select 
     other_id, 
     other_title, 
     '0.0.0.0' as IP, 
     1 as used 
from 
     other_table 

但Postgres的抱怨說:

column "ip" has type "unknown" 

我怎樣才能指定它的類型是char

回答

5

你需要明確投你一列,例如:

'0.0.0.0'::INET as IP, 
+0

或者::如果您不想將其作爲真正的IP處理 – frlan

0

您應指定類型,使用 '0.0.0.0' ::文本作爲IP

0

至少從的Postgres 9.4 ,這不會引起EXCEPTION,只是WARNING

dbfiddle用於PG 9.4 here

的Postgres 10引入了更多的有用的默認行爲:如果沒有類型被給出了字符串文字表被創建無論如何,與數據類型unknown的列。除非明確強制轉換,否則將字符串文字轉換爲默認數據類型text。所以,你沒有得到unknown類型的列更多:

dbfiddle here

this commit介紹(有詳細的說明)。

unknown現在已被標記爲僞類型。 Details in this commit.