PostgreSQL语法错误我不明白

PostgreSQL Syntax error I do not understand

我有下一个 SQL 命令,postgress 说它不正确:

SQL State  : 42601
Error Code : 0
Message    : ERROR: syntax error at or near "NOT"
  Position: 41
Location   : db/migration/postgresql/V2.5.0.20180730192730__schema-add-kerberos-to-source.sql (/opt/tomcat/webapps/WebAPI/WEB-INF/classes/db/migration/postgresql/V2.5.0.20180730192730__schema-add-kerberos-to-source.sql)
Line       : 1
Statement  : ALTER TABLE webapi.source ADD COLUMN IF NOT EXISTS krb_auth_method VARCHAR DEFAULT 'PASSWORD' NOT NULL

知道为什么这是错误的吗?我正在使用 psql 9.5.9

manual说的是,没有ADD COLUMN IF NOT EXISTS,只有ADD COLUMN

ALTER TABLE ... ADD COLUMN IF NOT EXISTS 是在 Postgres 9.6 中添加的。您可以在 the current manual.

中找到它

您可能仍想升级到当前版本。 9.5版本老了,12版本快出来了

如果你坚持9.5,至少要考虑一下the Postgres project advises:

We always recommend that all users run the latest available minor release for whatever major version is in use.

在撰写本文时,当前的次要版本是 9.5.19。您错过了几年的安全更新和错误修复。