无法在 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。
我正在 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。