【问题标题】:ON CONFLICT syntax error in Postgres 9.5.0Postgres 9.5.0 中的 ON CONFLICT 语法错误
【发布时间】:2016-04-26 00:36:03
【问题描述】:

在 Postgres 文档 INSERT 中有一个使用 ON CONFLICT 的示例:

INSERT INTO distributors (did, dname) VALUES (7, 'Redline GmbH')
ON CONFLICT (did) DO NOTHING;

我尝试同样的事情:

INSERT INTO name_map VALUES ('key_value', 'val1','val2') 
ON CONFLICT (key_column) DO NOTHING;

但得到 ERROR: syntax error at or near "ON"。

我错过了什么?

postgres --version
> 9.5.0

【问题讨论】:

  • 你真的在运行 PostgreSQL 9.5吗?您可能安装了多个版本。
  • 听起来好像您没有连接到 Postgres 9.5 服务器。发布select version()的输出
  • key_column 是否已编入索引?
  • 您可以使用SELECT version()再次检查您是否连接到 9.5 服务器
  • select version() 显示实际上运行的服务器是9.4.5。显然在启动 postgres 时出现问题。我会编辑这个问题。谢谢!

标签: postgresql postgresql-9.5


【解决方案1】:

正如一些人在 cmets 中指出的那样,事实证明运行的是错误版本的 postgres。

select version()

在 psql 中揭示了这一点。

我的系统中一定有一个旧的 9.4.5 安装。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多