尝试将Array列添加到现有的Postgres表中

Sur*_*oor 6 postgresql

为什么这个命令不起作用?

ALTER TABLE candidate ADD COLUMN blocked_companies ARRAY;
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 14

您需要指定数据类型.如果需要字符串数组,请使用文本:

ALTER TABLE candidate ADD COLUMN blocked_companies text[];
Run Code Online (Sandbox Code Playgroud)

如果你想要一个数字数组,请使用int:

ALTER TABLE candidate ADD COLUMN blocked_companies int[];
Run Code Online (Sandbox Code Playgroud)

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

但在大多数情况下使用数组并不是一个好主意(尽管Postgres的阵列支持非常棒).正确规范化的模型可能更适合您.

  • @SurajKapoor:因为单列中的多个值违反了规范化原则。 (2认同)