墨鱼先生
墨鱼先生
  • 发布:2026-10-28 15:55
  • 更新:2026-10-28 20:27
  • 阅读:135

【报Bug】没有索引唯一性限制,无法添加相同参数数据

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

uniCloud控制台直接输入相同参数

预期结果:

添加一条新数据

实际结果:

报错

bug描述:

uniCloud控制台没有设置“code"唯一性索引,但是相同“code"值数据无法创建?

2026-10-28 15:55 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

您好,感谢您的反馈。以官方视角对这条 bug 反馈进行评审后,目前的信息还不足以确认这是一个 bug,需要您补充一些关键信息。

一、反馈内容完整性评审

  • BUG 描述:只说明了“没有设置唯一索引但相同 code 无法创建”,缺少最关键的信息——完整的报错内容(错误码和错误消息全文)。报错信息是判断根因的核心证据,例如如果报错类似 E11000 duplicate key error collection: xxx index: xxx dup key,则说明数据库层面确实有唯一索引在生效。
  • 复现步骤:“uniCloud控制台直接输入相同参数”过于简略,官方人员无法据此复现。需要补充:服务空间的云厂商(阿里云/腾讯云/支付宝云)、表名、添加数据的具体方式(web 控制台新增记录、clientDB 还是云函数)、添加的数据内容。
  • 代码示例:未提供。建议补充该表的索引配置情况(web 控制台“云数据库 → 对应集合 → 索引管理”中的索引列表)。
  • 预期结果:添加一条新数据,预期合理。
  • 实际结果:仅写“报错”,无具体报错详情,无法判断。
  • 分类信息:不完整,缺少云厂商、HBuilderX 版本、是否本地运行等信息。

另外提示:我无法识别附件,相关报错信息、索引配置请以文字形式直接贴出。

二、bug 是否成立的初步分析

根据官方文档,只有将索引属性设置为“唯一”,才会要求集合中索引字段对应的值不能重复;非唯一索引不会阻止相同值的数据插入。参见文档:唯一性限制、数据库索引。

也就是说,如果该表确实没有唯一索引,理论上不应出现重复值被拒绝的情况。结合社区已有案例,此类现象常见原因包括:

  1. 该表实际上存在唯一索引,可能来自 db_init.json、{表名}.index.json、DB Schema 配置,或服务空间初始化时自动创建。有社区案例最终确认就是“设置了唯一索引报的数据重复的错误”,参见:导入添加报错。
  2. 之前设置过唯一索引后删除,但索引仍残留生效。社区有类似反馈(删除唯一索引、重建同名表后仍报 duplicate key 错误),参见:【报Bug】uniCloud 索引偶现报错。
  3. 报错可能并非索引冲突,而是其他校验错误,需要看到具体报错内容才能判断。

三、请补充以下信息以便进一步核实

  1. 完整的报错信息(错误码 + 错误消息全文);
  2. 服务空间所属云厂商;
  3. 该表当前的完整索引列表(web 控制台索引管理页截图内容以文字描述);
  4. 是否曾对该表设置过唯一索引后删除,是否使用过 db_init.json 初始化过数据;
  5. 添加数据的具体操作方式。

补充以上信息后,官方才能判断是配置问题还是索引异常问题,进而确认该 bug 是否成立。

内容为 AI 生成,仅供参考
墨鱼先生

墨鱼先生 (作者)

报错信息:Business Failed, 参数有误document is already exists. code: INVALID_PARAMETER. traceId: 21d0d2b317931884125158859e983d
云厂商:支付宝云
该表当前经由默认自动生成的的_id索引,其他索引全部删除了

墨鱼先生

墨鱼先生 (作者)

删除表,然后再unicloud控制台直接新建表,然后就正常了。问题解决

要回复问题请先登录或注册