You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 9.1.11是否支持ON CONFLICT?使用时出错求助

PostgreSQL 9.1.11是否支持ON CONFLICT语法?
  • 不支持。ON CONFLICT是PostgreSQL 9.5版本才正式引入的语法,用于实现UPSERT(插入或更新)逻辑,9.1.11作为更早的版本,完全没有该语法支持,这就是你使用该代码报错的直接原因。
  • 针对9.1.11版本的替代实现方案:
    • 方案一:用INSERT ... WHERE NOT EXISTS结合子查询避免重复插入
      INSERT INTO your_table (col1, col2)
      VALUES ('val1', 'val2')
      WHERE NOT EXISTS (
          SELECT 1 FROM your_table WHERE col1 = 'val1'
      );
      
    • 方案二:通过事务组合更新/插入逻辑实现类似UPSERT效果
      BEGIN;
      UPDATE your_table SET col2 = 'val2' WHERE col1 = 'val1';
      IF NOT FOUND THEN
          INSERT INTO your_table (col1, col2) VALUES ('val1', 'val2');
      END IF;
      COMMIT;
      
      注:使用该方案时,需确保目标列存在唯一约束,避免并发场景下出现数据冲突。

内容的提问来源于stack exchange,提问作者Shabrina Nurdiani S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:44:51