无法在 pgAdmin4 和 PostgreSQL 9.5.25 中添加列

Can't add column in pgAdmin4 and PostgreSQL 9.5.25

我正在 Ubuntu 16.04 上使用 pgAdmin4 和 PostgreSQL 9.5.25(我知道它已经过时了,但我目前确实需要处理它)。

我可以向我的数据库添加一个新的 table,但是,当我尝试使用 GUI(Table --> 属性)向现有的 table 添加一个新列时我收到此错误消息:

ERROR   pgadmin:    Failed to execute query (execute_scalar) for the server #1 - DB:api_dev2 (Query-id: 1319646):
Error Message:ERROR:  syntax error at or near "NOT"
LINE 2:     ADD COLUMN IF NOT EXISTS is_for_sale boolean DEFAULT Fal...
                          ^

对应的SQL查询是这样的

ALTER TABLE IF EXISTS public."Products"
    ADD COLUMN IF NOT EXISTS is_for_sale boolean DEFAULT False;

我知道“如果不存在”是问题的根源。当我简单地 运行 这个查询时:

ALTER TABLE IF EXISTS public."Products"
    ADD COLUMN is_for_sale boolean DEFAULT False;

有效。但是为什么 pgAdmin4 添加了这个“IF NOT EXISTS”?

ADD COLUMN IF NOT EXISTS 仅适用于 Postgres 9.6 and up. See the documentation for Postgres 9.5

为了解决您的编辑问题,您正在使用的 PostgreSQL 版本不再受支持 - 所有受支持的版本都支持 ADD COLUMN IF NOT EXISTS 语法,这可能是 pgadmin 认为可以使用它的原因。您可以尝试使用旧版本的 pgadmin。