2014-11-14 47 views
2

爲什麼此命令不起作用?試圖將數組列添加到現有的Postgres表

ALTER TABLE candidate ADD COLUMN blocked_companies ARRAY; 
+0

什麼是錯誤信息? – 2014-11-14 15:10:25

+0

語法錯誤在或接近「ARRAY」 – 2014-11-14 15:19:00

+0

如果有人會解釋爲什麼一個問題收到一個負面的問題,我將不勝感激。將有助於未來的參與。 – 2014-11-14 17:23:14

回答

5

您需要指定數據類型。如果你想要的數字陣列,使用int

ALTER TABLE candidate ADD COLUMN blocked_companies text[]; 

ALTER TABLE candidate ADD COLUMN blocked_companies int[]; 

更多細節可以在手冊中找到:
http://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-DECLARATION

如果你想要一個字符串數組,使用文本

但是在大多數情況下,使用數組並不是一個好主意(儘管Postgres的數組支持)。正確的標準化模型可能對您的工作更好。

+0

非常感謝,我會給它一個鏡頭。爲什麼使用數組不是一個好主意? – 2014-11-14 15:32:02

+0

@SurajKapoor:因爲單個列中的多個值違反了規範化原則。 – 2014-11-14 15:34:09