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

Supabase Upsert多onConflict约束报错:无匹配唯一/排除约束

解决Supabase Upsert多字段冲突约束问题

错误的核心原因是:你在代码里指定了date和url作为冲突判断字段,但你的items表没有给这两个字段的组合添加唯一约束。Supabase基于PostgreSQL,而PostgreSQL要求onConflict参数对应的字段必须有唯一约束/排除约束,否则无法识别冲突条件。

解决步骤:

  1. 给items表添加date+url的联合唯一约束
    有两种操作方式:

    • Supabase控制台操作:
      • 进入你的Supabase项目控制台,切换到Table Editor找到items表
      • 点击顶部的Constraints标签,选择Add constraint,类型选Unique constraint
      • 在Columns中同时勾选date和url,给约束命名(比如items_date_url_key),保存即可
    • SQL语句操作(在Supabase的SQL编辑器中执行):
      ALTER TABLE items
      ADD CONSTRAINT items_date_url_key UNIQUE (date, url);
      
  2. 重新执行你的Upsert代码
    约束添加完成后,原来的代码就能正常运行,PostgreSQL会通过date和url的组合判断数据是否存在,存在则更新,不存在则插入。

额外说明

如果后续需要删除这个联合唯一约束,可执行:

ALTER TABLE items
DROP CONSTRAINT items_date_url_key;

内容的提问来源于stack exchange,提问作者Henri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:25:30